Commit 20d4885b by peterchu

fix:

1. 对接销售明细报表业务
parent ba02c925
...@@ -84,5 +84,11 @@ ...@@ -84,5 +84,11 @@
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" /> <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" /> <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
<orderEntry type="library" name="Maven: com.yutu.comm:yutu_common:1.0.37" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastJson:1.2.7" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:easyexcel:2.2.6" level="project" />
<orderEntry type="library" name="Maven: cglib:cglib:3.1" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm:4.2" level="project" />
<orderEntry type="library" name="Maven: org.ehcache:ehcache:3.2.2" level="project" />
</component> </component>
</module> </module>
\ No newline at end of file
...@@ -127,6 +127,13 @@ ...@@ -127,6 +127,13 @@
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>3.17</version> <version>3.17</version>
</dependency> </dependency>
<!-- 使用 common 包中的 NoteResult -->
<dependency>
<groupId>com.yutu.comm</groupId>
<artifactId>yutu_common</artifactId>
<version>1.0.37</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -27,12 +27,28 @@ public class DownLoadController { ...@@ -27,12 +27,28 @@ public class DownLoadController {
@Autowired @Autowired
private PrivateFreightService privateFreightService; private PrivateFreightService privateFreightService;
/** /**
* 获取销售数据 * 获取销售数据
* @param requestBody * @param requestBody
* @return * @return
*/ */
@RequestMapping(value = "download/getSaleDetailData.do",method = RequestMethod.POST) @RequestMapping(value = "download/getSaleDetailData",method = RequestMethod.POST)
public Response getSaleDetail(@RequestBody String requestBody){ public Response getSaleDetail(@RequestBody String requestBody){
return downLoadService.getSaleDetailReportData(requestBody); return downLoadService.getSaleDetailReportData(requestBody);
} }
...@@ -41,16 +57,17 @@ public class DownLoadController { ...@@ -41,16 +57,17 @@ public class DownLoadController {
* @param requestBody * @param requestBody
* @return * @return
*/ */
@RequestMapping(value = "download/saleDetailReport.do",method = RequestMethod.POST) @RequestMapping(value = "download/saleDetailReport",method = RequestMethod.POST)
public Response saleDetailReport(@RequestBody String requestBody){ public Response saleDetailReport(@RequestBody String requestBody){
return downLoadService.downLoadSaleDetailReport(requestBody); return downLoadService.downLoadSaleDetailReport(requestBody);
} }
/** /**
* 下载销售报表(符合查询条件时,直接从数据库SaleDetail表中直接下载获取报表数据) * 下载销售报表(符合查询条件时,直接从数据库SaleDetail表中直接下载获取报表数据)
* 快速导出报表(新)
* @param requestBody * @param requestBody
* @return * @return
*/ */
@RequestMapping(value = "download/saleDetailReportFromAutoSource.do",method = RequestMethod.POST) @RequestMapping(value = "download/saleDetailReportFromAutoSource",method = RequestMethod.POST)
public Response saleDetailReportFromAutoSource(@RequestBody String requestBody){ public Response saleDetailReportFromAutoSource(@RequestBody String requestBody){
return downLoadService.downLoadSaleDetailFromAutoSource(requestBody); return downLoadService.downLoadSaleDetailFromAutoSource(requestBody);
} }
...@@ -61,6 +78,7 @@ public class DownLoadController { ...@@ -61,6 +78,7 @@ public class DownLoadController {
*/ */
@RequestMapping(value = "parse/toSaleDetail",method = RequestMethod.POST) @RequestMapping(value = "parse/toSaleDetail",method = RequestMethod.POST)
public Response parseToSaleDetail(@RequestBody String requestBody){ public Response parseToSaleDetail(@RequestBody String requestBody){
System.out.println("---------------");
return downLoadService.parseToSaleDetail(requestBody); return downLoadService.parseToSaleDetail(requestBody);
} }
/** /**
...@@ -68,7 +86,7 @@ public class DownLoadController { ...@@ -68,7 +86,7 @@ public class DownLoadController {
* @param requestBody * @param requestBody
* @return * @return
*/ */
@RequestMapping(value = "download/saleRules.do",method = RequestMethod.POST) @RequestMapping(value = "download/saleRules",method = RequestMethod.POST)
public Response downLoadSaleRules(@RequestBody String requestBody){ public Response downLoadSaleRules(@RequestBody String requestBody){
logger.info("下载加价规则,参数:"+requestBody); logger.info("下载加价规则,参数:"+requestBody);
return downLoadService.downLoadSaleRules(requestBody); return downLoadService.downLoadSaleRules(requestBody);
...@@ -94,7 +112,7 @@ public class DownLoadController { ...@@ -94,7 +112,7 @@ public class DownLoadController {
/** /**
* 按照指定条件导出私有运价底价配置 * 按照指定条件导出私有运价底价配置
*/ */
@RequestMapping(value = "privateFreight/download.do",method = RequestMethod.POST) @RequestMapping(value = "privateFreight/download",method = RequestMethod.POST)
public Response exportPrivateFreight(@RequestBody String requestBody){ public Response exportPrivateFreight(@RequestBody String requestBody){
return privateFreightService.exportPrivateFreight(requestBody); return privateFreightService.exportPrivateFreight(requestBody);
} }
......
package com.yutu.base.controller;
import com.yutu.base.entity.Response;
import com.yutu.base.service.SaleDetailService;
import com.yutu.comm.entity.exception.NoteResult;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* 报表管理:
* 销售明细报表
* 销售汇总报表
* 20210319111255
*/
@RestController
@RequestMapping("statementApi/")
public class StatementController {
private Logger logger = Logger.getLogger("download");
@Autowired
private SaleDetailService saleDetailService;
/**
* 销售明细报表页面 获取销售明细数据
* @param requestBody
* @return
*/
@RequestMapping(value = "salesDetail/getSalesDetailList",method = RequestMethod.POST)
public NoteResult getSalesDetailList(@RequestBody String requestBody){
return saleDetailService.getSalesDetailList(requestBody);
}
/**
* 下载销售报表(符合查询条件时,直接从数据库SaleDetail表中直接下载获取报表数据)
* 销售明细报表 导出报表(新)
* @param requestBody
* @return
*/
@RequestMapping(value = "salesDetail/downloadSalesDetailReport",method = RequestMethod.POST)
public NoteResult saleDetailReportFromAutoSource(@RequestBody String requestBody){
return saleDetailService.downloadSalesDetailReportExcel(requestBody);
}
}
...@@ -17,7 +17,7 @@ public class UploadController { ...@@ -17,7 +17,7 @@ public class UploadController {
@Autowired @Autowired
private UploadService uploadService; private UploadService uploadService;
@RequestMapping(value = "upload/saleRules.do",method = RequestMethod.POST) @RequestMapping(value = "upload/saleRules",method = RequestMethod.POST)
public Response uploadSaleRules(@RequestBody String requestBody){ public Response uploadSaleRules(@RequestBody String requestBody){
logger.info("上传销售规则,参数:"+requestBody); logger.info("上传销售规则,参数:"+requestBody);
Response response = uploadService.uploadSaleRules(requestBody); Response response = uploadService.uploadSaleRules(requestBody);
...@@ -25,7 +25,7 @@ public class UploadController { ...@@ -25,7 +25,7 @@ public class UploadController {
return response; return response;
} }
@RequestMapping(value = "privateFreight/upload.do",method = RequestMethod.POST) @RequestMapping(value = "privateFreight/upload",method = RequestMethod.POST)
public Response uploadPrivateFreight(@RequestBody String requestBody){ public Response uploadPrivateFreight(@RequestBody String requestBody){
logger.info("上传私有运价底价配置,参数:"+requestBody); logger.info("上传私有运价底价配置,参数:"+requestBody);
Response response = uploadService.uploadPrivateFreight(requestBody); Response response = uploadService.uploadPrivateFreight(requestBody);
......
...@@ -2,7 +2,7 @@ package com.yutu.base.entity; ...@@ -2,7 +2,7 @@ package com.yutu.base.entity;
import java.io.Serializable; import java.io.Serializable;
public class NoteResult implements Serializable { public class NoteResult<T> implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 状态码 0-成功 2-失败 * 状态码 0-成功 2-失败
...@@ -19,13 +19,13 @@ public class NoteResult implements Serializable { ...@@ -19,13 +19,13 @@ public class NoteResult implements Serializable {
/** /**
* 设置要返回的具体数据 * 设置要返回的具体数据
*/ */
private Object data;//返回的数据 private T data;//返回的数据
public NoteResult() { public NoteResult() {
} }
public NoteResult(int status, String msg, Object data) { public NoteResult(int status, String msg, T data) {
this.status = status; this.status = status;
this.msg = msg; this.msg = msg;
this.data = data; this.data = data;
...@@ -35,7 +35,7 @@ public class NoteResult implements Serializable { ...@@ -35,7 +35,7 @@ public class NoteResult implements Serializable {
return data; return data;
} }
public void setData(Object data) { public void setData(T data) {
this.data = data; this.data = data;
} }
...@@ -63,6 +63,66 @@ public class NoteResult implements Serializable { ...@@ -63,6 +63,66 @@ public class NoteResult implements Serializable {
this.info = info; this.info = info;
} }
/**
* 状态值 枚举
*/
public static enum Status {
SUCCEED(200, "SUCCESS"), // 成功的状态
FAILED(400, "FAILED"), // 失败的状态
ERROR(300, "ERROR"), // 出错的状态
NONE, //
TICKET_DATE_ERROR,//航班日期错误
FLIGHT_INFO_ERROR,//航程信息错误
PASSENGER_INFO_ERROR,//乘客信息错误
SERVER_INTRRNAL_ERROR;//服务内部错误
private Integer status;
private String msg;
private Status() {
}
private Status(Integer status){
this.status = status;
}
private Status(Integer status, String msg) {
this.status = status;
this.msg = msg;
}
public Integer getStatus() {
return status;
}
public String getMsg(){
return msg;
}
}
public static NoteResult success(){
NoteResult noteResult = new NoteResult();
noteResult.setStatus(Status.SUCCEED.getStatus());
noteResult.setMsg(Status.SUCCEED.getMsg());
noteResult.setData(new Object());
return noteResult;
}
public static NoteResult success(Object data){
NoteResult noteResult = new NoteResult();
noteResult.setStatus(Status.SUCCEED.getStatus());
noteResult.setMsg(Status.SUCCEED.getMsg());
noteResult.setData(data);
return noteResult;
}
public static NoteResult error(String errorMessage){
NoteResult noteResult = new NoteResult();
noteResult.setStatus(Status.ERROR.getStatus());
noteResult.setMsg(errorMessage);
noteResult.setData(new Object());
return noteResult;
}
@Override @Override
public String toString() { public String toString() {
return "NoteResult [status=" + status + ", msg=" + msg + ", info=" return "NoteResult [status=" + status + ", msg=" + msg + ", info="
......
...@@ -52,15 +52,26 @@ public class Response implements Serializable{ ...@@ -52,15 +52,26 @@ public class Response implements Serializable{
} }
public static enum Status { public static enum Status {
SUCCEED, SUCCEED(200), // 成功的状态
FAILED, FAILED(400), // 失败的状态
NONE, NONE, //
TICKET_DATE_ERROR,//航班日期错误 TICKET_DATE_ERROR,//航班日期错误
FLIGHT_INFO_ERROR,//航程信息错误 FLIGHT_INFO_ERROR,//航程信息错误
PASSENGER_INFO_ERROR,//乘客信息错误 PASSENGER_INFO_ERROR,//乘客信息错误
SERVER_INTRRNAL_ERROR;//服务内部错误 SERVER_INTRRNAL_ERROR;//服务内部错误
public Integer getStatus() {
return status;
}
private Integer status;
private Status() { private Status() {
} }
private Status(Integer status) {
this.status = status;
}
} }
@Override @Override
......
...@@ -14,12 +14,12 @@ public class SaleDetail implements Serializable { ...@@ -14,12 +14,12 @@ public class SaleDetail implements Serializable {
private String id; private String id;
private String key;//唯一标识 customerId_fromDate_toDate private String key;//唯一标识 customerId_fromDate_toDate
private Date createTime;//创建时间 private String createTime;//创建时间
private Date updateTime;//更新时间 private String updateTime;//更新时间
private Integer sortIndex; private Integer sortIndex;
private Date createOrderTime; // sheet.addCell(new Label(0,0,"生单时间",wcf2)); private String createOrderTime; // sheet.addCell(new Label(0,0,"生单时间",wcf2));
private Date ticketTime; // sheet.addCell(new Label(1,0,"出票时间",wcf2)); private String ticketTime; // sheet.addCell(new Label(1,0,"出票时间",wcf2));
private String outerOrderNo; // sheet.addCell(new Label(2,0,"订单号",wcf2)); private String outerOrderNo; // sheet.addCell(new Label(2,0,"订单号",wcf2));
private String channel; // sheet.addCell(new Label(3,0,"销售渠道",wcf2)); private String channel; // sheet.addCell(new Label(3,0,"销售渠道",wcf2));
private String store; // sheet.addCell(new Label(4,0,"销售店铺",wcf2)); private String store; // sheet.addCell(new Label(4,0,"销售店铺",wcf2));
...@@ -50,14 +50,14 @@ public class SaleDetail implements Serializable { ...@@ -50,14 +50,14 @@ public class SaleDetail implements Serializable {
private String policyCode; // sheet.addCell(new Label(29,0,"政策编码",wcf2)); private String policyCode; // sheet.addCell(new Label(29,0,"政策编码",wcf2));
private String orderStatus; // sheet.addCell(new Label(30,0,"订单状态",wcf2)); private String orderStatus; // sheet.addCell(new Label(30,0,"订单状态",wcf2));
private String operator; // sheet.addCell(new Label(31,0,"出票人",wcf2)); private String operator; // sheet.addCell(new Label(31,0,"出票人",wcf2));
private Date purchaseTime; // sheet.addCell(new Label(32,0,"采购时间",wcf2)); private String purchaseTime; // sheet.addCell(new Label(32,0,"采购时间",wcf2));
private String orderValueAdded; // sheet.addCell(new Label(33,0,"附加产品",wcf2)); private String orderValueAdded; // sheet.addCell(new Label(33,0,"附加产品",wcf2));
private String orderValueAddedSpecific; // sheet.addCell(new Label(34,0,"附加产品规格",wcf2)); private String orderValueAddedSpecific; // sheet.addCell(new Label(34,0,"附加产品规格",wcf2));
private String remark; // sheet.addCell(new Label(35,0,"备注",wcf2)); private String remark; // sheet.addCell(new Label(35,0,"备注",wcf2));
private String officalReceivedPaymentStatus; // sheet.addCell(new Label(36,0,"财务-回款状态",wcf2)); private String officalReceivedPaymentStatus; // sheet.addCell(new Label(36,0,"财务-回款状态",wcf2));
private Double officalActualExpendAmount; // sheet.addCell(new Label(37,0,"财务-实际支出金额",wcf2)); private Double officalActualExpendAmount; // sheet.addCell(new Label(37,0,"财务-实际支出金额",wcf2));
private Double officalBalance; // sheet.addCell(new Label(38,0,"财务-补差",wcf2)); private Double officalBalance; // sheet.addCell(new Label(38,0,"财务-补差",wcf2));
private Date officalRateAdjustDate; // sheet.addCell(new Label(39,0,"财务-外币调整日期",wcf2)); private String officalRateAdjustDate; // sheet.addCell(new Label(39,0,"财务-外币调整日期",wcf2));
private String passengerNames; //采购信息本次采购的乘客姓名 private String passengerNames; //采购信息本次采购的乘客姓名
private Integer adultCount; //采购的成人数量 private Integer adultCount; //采购的成人数量
...@@ -95,19 +95,19 @@ public class SaleDetail implements Serializable { ...@@ -95,19 +95,19 @@ public class SaleDetail implements Serializable {
this.key = key; this.key = key;
} }
public Date getCreateTime() { public String getCreateTime() {
return createTime; return createTime;
} }
public void setCreateTime(Date createTime) { public void setCreateTime(String createTime) {
this.createTime = createTime; this.createTime = createTime;
} }
public Date getUpdateTime() { public String getUpdateTime() {
return updateTime; return updateTime;
} }
public void setUpdateTime(Date updateTime) { public void setUpdateTime(String updateTime) {
this.updateTime = updateTime; this.updateTime = updateTime;
} }
...@@ -120,20 +120,20 @@ public class SaleDetail implements Serializable { ...@@ -120,20 +120,20 @@ public class SaleDetail implements Serializable {
} }
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
public Date getCreateOrderTime() { public String getCreateOrderTime() {
return createOrderTime; return createOrderTime;
} }
public void setCreateOrderTime(Date createOrderTime) { public void setCreateOrderTime(String createOrderTime) {
this.createOrderTime = createOrderTime; this.createOrderTime = createOrderTime;
} }
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
public Date getTicketTime() { public String getTicketTime() {
return ticketTime; return ticketTime;
} }
public void setTicketTime(Date ticketTime) { public void setTicketTime(String ticketTime) {
this.ticketTime = ticketTime; this.ticketTime = ticketTime;
} }
...@@ -380,11 +380,11 @@ public class SaleDetail implements Serializable { ...@@ -380,11 +380,11 @@ public class SaleDetail implements Serializable {
} }
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
public Date getPurchaseTime() { public String getPurchaseTime() {
return purchaseTime; return purchaseTime;
} }
public void setPurchaseTime(Date purchaseTime) { public void setPurchaseTime(String purchaseTime) {
this.purchaseTime = purchaseTime; this.purchaseTime = purchaseTime;
} }
...@@ -436,11 +436,11 @@ public class SaleDetail implements Serializable { ...@@ -436,11 +436,11 @@ public class SaleDetail implements Serializable {
this.officalBalance = officalBalance; this.officalBalance = officalBalance;
} }
public Date getOfficalRateAdjustDate() { public String getOfficalRateAdjustDate() {
return officalRateAdjustDate; return officalRateAdjustDate;
} }
public void setOfficalRateAdjustDate(Date officalRateAdjustDate) { public void setOfficalRateAdjustDate(String officalRateAdjustDate) {
this.officalRateAdjustDate = officalRateAdjustDate; this.officalRateAdjustDate = officalRateAdjustDate;
} }
...@@ -455,7 +455,7 @@ public class SaleDetail implements Serializable { ...@@ -455,7 +455,7 @@ public class SaleDetail implements Serializable {
public SaleDetail() { public SaleDetail() {
} }
public SaleDetail(String id, String key, Date createTime, Date updateTime, Integer sortIndex, Date createOrderTime, Date ticketTime, String outerOrderNo, String channel, String store, String tairLine, String flightTime, String flightNumber, String tripType, String pnrType, String pnr, Integer passengerCount, Double salePrice, Double luggagePrice, Integer points, String purchaseCurrency, Double purchasePrice_local, Double purchasePrice_rmb, Double transactionDetail_local, Double transactionDetail_rmb, String payMethod, String cardNumber, Double profit, String transactionNumber, String orderValueAddedNo, String purchaseChannel, String purchaseAccount, String purchaseOrderNo, String policyType, String policyCode, String orderStatus, String operator, Date purchaseTime, String orderValueAdded, String orderValueAddedSpecific, String remark, String officalReceivedPaymentStatus, Double officalActualExpendAmount, Double officalBalance, Date officalRateAdjustDate, String passengerNames, Integer adultCount, Integer childCount) { public SaleDetail(String id, String key, String createTime, String updateTime, Integer sortIndex, String createOrderTime, String ticketTime, String outerOrderNo, String channel, String store, String tairLine, String flightTime, String flightNumber, String tripType, String pnrType, String pnr, Integer passengerCount, Double salePrice, Double luggagePrice, Integer points, String purchaseCurrency, Double purchasePrice_local, Double purchasePrice_rmb, Double transactionDetail_local, Double transactionDetail_rmb, String payMethod, String cardNumber, Double profit, String transactionNumber, String orderValueAddedNo, String purchaseChannel, String purchaseAccount, String purchaseOrderNo, String policyType, String policyCode, String orderStatus, String operator, String purchaseTime, String orderValueAdded, String orderValueAddedSpecific, String remark, String officalReceivedPaymentStatus, Double officalActualExpendAmount, Double officalBalance, String officalRateAdjustDate, String passengerNames, Integer adultCount, Integer childCount) {
this.id = id; this.id = id;
this.key = key; this.key = key;
this.createTime = createTime; this.createTime = createTime;
......
...@@ -44,25 +44,27 @@ public class DownLoadService { ...@@ -44,25 +44,27 @@ public class DownLoadService {
/** /**
* 获取销售数据 * 获取销售数据
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
public Response getSaleDetailReportData(String requestBody){ public Response getSaleDetailReportData(String requestBody) {
if(StringUtils.isBlank(requestBody)){ if (StringUtils.isBlank(requestBody)) {
return Response.error("参数不能为空 [requestBody]"); return Response.error("参数不能为空 [requestBody]");
} }
logger.info("开始获取数据,参数:" + requestBody); logger.info("开始获取数据,参数:" + requestBody);
long beginTime = System.currentTimeMillis(); long beginTime = System.currentTimeMillis();
String result = HttpsSendData.getPost(overseasAirTicketUrl+"orderInfo/getReportExcelData.do",requestBody); // String result = HttpsSendData.getPost(overseasAirTicketUrl+"orderInfo/getReportExcelData.do",requestBody);
if(StringUtils.isBlank(result)){ String result = HttpsSendData.getPost(overseasAirTicketUrl + "order/getReportExcelData", requestBody);
if (StringUtils.isBlank(result)) {
return Response.error("获取数据失败"); return Response.error("获取数据失败");
} }
JSONObject resultObj = JSONObject.parseObject(result); JSONObject resultObj = JSONObject.parseObject(result);
if(resultObj.getInteger("status") != 0){ if (resultObj.getInteger("status") != 0) {
return Response.error("获取数据失败"); return Response.error("获取数据失败");
} }
logger.info("获取数据成功,共用时:" + (System.currentTimeMillis()-beginTime)); logger.info("获取数据成功,共用时:" + (System.currentTimeMillis() - beginTime));
Map<String,String> resultMap = resultObj.getObject("data",Map.class); Map<String, String> resultMap = resultObj.getObject("data", Map.class);
Response response = new Response(); Response response = new Response();
response.setStatus(Response.Status.SUCCEED); response.setStatus(Response.Status.SUCCEED);
response.setData(resultMap); response.setData(resultMap);
...@@ -72,88 +74,92 @@ public class DownLoadService { ...@@ -72,88 +74,92 @@ public class DownLoadService {
/** /**
* 下载销售报表 * 下载销售报表
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
public Response downLoadSaleDetailReport(String requestBody){ public Response downLoadSaleDetailReport(String requestBody) {
if(StringUtils.isBlank(requestBody)){ if (StringUtils.isBlank(requestBody)) {
return Response.error("参数不能为空 [requestBody]"); return Response.error("参数不能为空 [requestBody]");
} }
String customerId = JSONObject.parseObject(requestBody).getString("customerId"); String customerId = JSONObject.parseObject(requestBody).getString("customerId");
logger.info("开始获取数据,参数:" + requestBody); logger.info("开始获取数据,参数:" + requestBody);
long beginTime = System.currentTimeMillis(); long beginTime = System.currentTimeMillis();
String result = HttpsSendData.getPost(overseasAirTicketUrl+"orderInfo/getReportExcelData.do",requestBody); String result = HttpsSendData.getPost(overseasAirTicketUrl + "order/getReportExcelData", requestBody);
if(StringUtils.isBlank(result)){ if (StringUtils.isBlank(result)) {
return Response.error("获取数据失败"); return Response.error("获取数据失败");
} }
JSONObject resultObj = JSONObject.parseObject(result); JSONObject resultObj = JSONObject.parseObject(result);
if(resultObj.getInteger("status") != 0){ if (resultObj.getInteger("status") != 0) {
return Response.error("获取数据失败"); return Response.error("获取数据失败");
} }
logger.info("获取数据成功,共用时:" + (System.currentTimeMillis()-beginTime)); logger.info("获取数据成功,共用时:" + (System.currentTimeMillis() - beginTime));
logger.info("开始解析数据生成报表 ..."); logger.info("开始解析数据生成报表 ...");
Map<String,String> resultMap = resultObj.getObject("data",Map.class); Map<String, String> resultMap = resultObj.getObject("data", Map.class);
Response response = new Response(); Response response = new Response();
try{ try {
final String filePath = saleDetailReportExcelPath + customerId + "/SalesDetailReport/";//指定文件保存路径 final String filePath = saleDetailReportExcelPath + customerId + "/SalesDetailReport/";//指定文件保存路径
String path = saleDetailReportService.createExcel(resultMap, filePath, ""); String path = saleDetailReportService.createExcel(resultMap, filePath, "");
response.setStatus(Response.Status.SUCCEED); response.setStatus(Response.Status.SUCCEED);
response.setData(path); response.setData(path);
response.setErrorMessage("生成成功,总用时:"+(System.currentTimeMillis()-beginTime)+"ms"); response.setErrorMessage("生成成功,总用时:" + (System.currentTimeMillis() - beginTime) + "ms");
logger.info("生成销售明细报表,总用时:"+(System.currentTimeMillis()-beginTime)+"ms"); logger.info("生成销售明细报表,总用时:" + (System.currentTimeMillis() - beginTime) + "ms");
return response; return response;
}catch (Exception e){ } catch (Exception e) {
logger.error("生成报表发生异常",e); logger.error("生成报表发生异常", e);
return Response.error("生成报表发生异常"); return Response.error("生成报表发生异常");
} }
} }
/** /**
* 下载加价规则 * 下载加价规则 包含数据
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
public Response downLoadSaleRules(String requestBody){ public Response downLoadSaleRules(String requestBody) {
JSONObject requestObj = JSONObject.parseObject(requestBody); JSONObject requestObj = JSONObject.parseObject(requestBody);
String customerId = requestObj.getString("customerId"); String customerId = requestObj.getString("customerId");
long beginTime = System.currentTimeMillis(); long beginTime = System.currentTimeMillis();
//请求运价直连工程获取源数据 //请求运价直连工程获取源数据
String result=HttpsSendData.getPost(productServiceUrl+"SaleRules/findByCustomerId.do", requestBody); String result = HttpsSendData.getPost(productServiceUrl + "SaleRules/findByCustomerId", requestBody);
if(StringUtils.isBlank(result)){ if (StringUtils.isBlank(result)) {
return Response.error("获取加价规则源数据异常"); return Response.error("获取加价规则源数据异常");
} }
JSONObject resultObj = JSONObject.parseObject(result); JSONObject resultObj = JSONObject.parseObject(result);
if(resultObj.getInteger("status") != 0){ if (resultObj.getInteger("status") != 0) {
return Response.error("获取加价规则源数据失败"); return Response.error("获取加价规则源数据失败");
} }
JSONArray dataArr = resultObj.getJSONArray("data"); JSONArray dataArr = resultObj.getJSONArray("data");
if(dataArr.size() == 0){ if (dataArr.size() == 0) {
return Response.error("加价规则源数据共 0 条"); return Response.error("加价规则源数据共 0 条");
} }
List<SaleRules> saleRules = new ArrayList<>(); List<SaleRules> saleRules = new ArrayList<>();
for(int i=0;i<dataArr.size();i++){ for (int i = 0; i < dataArr.size(); i++) {
JSONObject data = dataArr.getJSONObject(i); JSONObject data = dataArr.getJSONObject(i);
SaleRules saleRule = new SaleRules(data.getString("id"),data.getString("customerId"),data.getString("channelId"), SaleRules saleRule = new SaleRules(data.getString("id"), data.getString("customerId"), data.getString("channelId"),
data.getString("store"),data.getString("ruleCode"),data.getString("carrier"),data.getString("org"), data.getString("store"), data.getString("ruleCode"), data.getString("carrier"), data.getString("org"),
data.getString("dst"),data.getInteger("routeType"),data.getInteger("policyType"),data.getString("policyDesc"), data.getString("dst"), data.getInteger("routeType"), data.getInteger("policyType"), data.getString("policyDesc"),
data.getInteger("point"),data.getInteger("costPrice"),data.getString("saleSdate"),data.getString("saleEdate"), data.getInteger("point"), data.getInteger("costPrice"), data.getString("saleSdate"), data.getString("saleEdate"),
data.getString("ticketDays"),data.getString("tripSdate"),data.getString("tripEdate"),data.getInteger("status"), data.getString("ticketDays"), data.getString("tripSdate"), data.getString("tripEdate"), data.getInteger("status"),
data.getInteger("maxPrice"),data.getInteger("minPrice"),data.getInteger("minProfit"), data.getInteger("maxPrice"), data.getInteger("minPrice"), data.getInteger("minProfit"),
data.getBigDecimal("adultPricePoint"),data.getInteger("adultAddPrice"),data.getInteger("adultAddTax"),data.getBigDecimal("adultTaxPoint"), data.getBigDecimal("adultPricePoint"), data.getInteger("adultAddPrice"), data.getInteger("adultAddTax"), data.getBigDecimal("adultTaxPoint"),
data.getBigDecimal("childPricePoint"),data.getInteger("childAddPrice"),data.getInteger("childAddTax"),data.getBigDecimal("childTaxPoint"), data.getBigDecimal("childPricePoint"), data.getInteger("childAddPrice"), data.getInteger("childAddTax"), data.getBigDecimal("childTaxPoint"),
data.getString("operator"),data.getDate("createTime"),data.getDate("updateTime"),data.getInteger("deleted"), data.getString("operator"), data.getDate("createTime"), data.getDate("updateTime"), data.getInteger("deleted"),
data.getString("notApplicableFlightNum"),data.getString("applyFlightNum"),data.getInteger("remainCabinNum"),data.getString("cabinCode"), data.getString("notApplicableFlightNum"), data.getString("applyFlightNum"), data.getInteger("remainCabinNum"), data.getString("cabinCode"),
data.getString("flightCycle"),data.getDouble("floorPrice"),data.getDouble("floorTax"),data.getInteger("fitShare"),data.getString("fitNationality"), data.getString("flightCycle"), data.getDouble("floorPrice"), data.getDouble("floorTax"), data.getInteger("fitShare"), data.getString("fitNationality"),
data.getString("disFitNationality"),data.getString("ageRange"),data.getString("attention")); data.getString("disFitNationality"), data.getString("ageRange"), data.getString("attention"));
saleRules.add(saleRule); saleRules.add(saleRule);
} }
String filePath = saleReportExcelPath+customerId+"/SaleRulesExcel\\"; String filePath = saleReportExcelPath + customerId + "/SaleRulesExcel\\";
File temp = new File(filePath); File temp = new File(filePath);
if (!temp.exists()) { temp.mkdir(); } if (!temp.exists()) {
temp.mkdir();
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
String date = sdf.format(new Date()); String date = sdf.format(new Date());
File file = new File(date+"~销售规则.xls"); File file = new File(date + "~销售规则.xls");
FileOutputStream os = null; FileOutputStream os = null;
HSSFWorkbook book = null; HSSFWorkbook book = null;
try { try {
...@@ -215,12 +221,12 @@ public class DownLoadService { ...@@ -215,12 +221,12 @@ public class DownLoadService {
title.createCell(21).setCellValue("最低利润值"); title.createCell(21).setCellValue("最低利润值");
title.createCell(22).setCellValue("成人加点"); title.createCell(22).setCellValue("成人加点");
title.createCell(23).setCellValue("成人留钱"); title.createCell(23).setCellValue("成人留钱");
title.createCell(24).setCellValue("成人加税"); // title.createCell(24).setCellValue("成人加税");
title.createCell(25).setCellValue("成人加税点"); // title.createCell(25).setCellValue("成人加税点");
title.createCell(26).setCellValue("儿童加点"); title.createCell(26).setCellValue("儿童加点");
title.createCell(27).setCellValue("儿童留钱"); title.createCell(27).setCellValue("儿童留钱");
title.createCell(28).setCellValue("儿童加税"); // title.createCell(28).setCellValue("儿童加税");
title.createCell(29).setCellValue("儿童加税点"); // title.createCell(29).setCellValue("儿童加税点");
title.createCell(30).setCellValue("舱位代码"); title.createCell(30).setCellValue("舱位代码");
title.createCell(31).setCellValue("销售规则Id"); title.createCell(31).setCellValue("销售规则Id");
title.createCell(32).setCellValue("航班周期"); title.createCell(32).setCellValue("航班周期");
...@@ -233,234 +239,226 @@ public class DownLoadService { ...@@ -233,234 +239,226 @@ public class DownLoadService {
title.createCell(39).setCellValue("购票需知"); title.createCell(39).setCellValue("购票需知");
//遍历销售规则数据列表 //遍历销售规则数据列表
for (int i = 0; i < saleRules.size(); i++) { for (int i = 0; i < saleRules.size(); i++) {
Row r = sheet.createRow(i+1); Row r = sheet.createRow(i + 1);
Cell channelIdCell = r.createCell(0); Cell channelIdCell = r.createCell(0);
channelIdCell.setCellStyle(cellStyle); channelIdCell.setCellStyle(cellStyle);
if (saleRules.get(i).getChannelId()==null) { if (saleRules.get(i).getChannelId() == null) {
channelIdCell.setCellValue("*"); channelIdCell.setCellValue("*");
}else{ } else {
channelIdCell.setCellValue(saleRules.get(i).getChannelId()); channelIdCell.setCellValue(saleRules.get(i).getChannelId());
} }
Cell store = r.createCell(1); Cell store = r.createCell(1);
store.setCellStyle(cellStyle); store.setCellStyle(cellStyle);
if (saleRules.get(i).getStore()==null) { if (saleRules.get(i).getStore() == null) {
store.setCellValue("*"); store.setCellValue("*");
}else{ } else {
store.setCellValue(saleRules.get(i).getStore()); store.setCellValue(saleRules.get(i).getStore());
} }
Cell ruleCode = r.createCell(2); Cell ruleCode = r.createCell(2);
ruleCode.setCellStyle(cellStyle); ruleCode.setCellStyle(cellStyle);
if (saleRules.get(i).getRuleCode()==null) { if (saleRules.get(i).getRuleCode() == null) {
ruleCode.setCellValue(""); ruleCode.setCellValue("");
}else{ } else {
ruleCode.setCellValue(saleRules.get(i).getRuleCode()); ruleCode.setCellValue(saleRules.get(i).getRuleCode());
} }
Cell carrierCell = r.createCell(3); Cell carrierCell = r.createCell(3);
carrierCell.setCellStyle(cellStyle); carrierCell.setCellStyle(cellStyle);
if (saleRules.get(i).getCarrier()==null) { if (saleRules.get(i).getCarrier() == null) {
carrierCell.setCellValue(""); carrierCell.setCellValue("");
}else{ } else {
carrierCell.setCellValue(saleRules.get(i).getCarrier()); carrierCell.setCellValue(saleRules.get(i).getCarrier());
} }
Cell orgCell = r.createCell(4); Cell orgCell = r.createCell(4);
orgCell.setCellStyle(cellStyle); orgCell.setCellStyle(cellStyle);
if (saleRules.get(i).getOrg()==null) { if (saleRules.get(i).getOrg() == null) {
orgCell.setCellValue("*"); orgCell.setCellValue("*");
}else{ } else {
orgCell.setCellValue(saleRules.get(i).getOrg()); orgCell.setCellValue(saleRules.get(i).getOrg());
} }
Cell dstCell = r.createCell(5); Cell dstCell = r.createCell(5);
dstCell.setCellStyle(cellStyle); dstCell.setCellStyle(cellStyle);
if (saleRules.get(i).getDst()==null) { if (saleRules.get(i).getDst() == null) {
dstCell.setCellValue("*"); dstCell.setCellValue("*");
}else{ } else {
dstCell.setCellValue(saleRules.get(i).getDst()); dstCell.setCellValue(saleRules.get(i).getDst());
} }
Cell applyFlightNumCell = r.createCell(6); Cell applyFlightNumCell = r.createCell(6);
applyFlightNumCell.setCellStyle(cellStyle); applyFlightNumCell.setCellStyle(cellStyle);
if (StringUtils.isBlank(saleRules.get(i).getApplyFlightNum())) { if (StringUtils.isBlank(saleRules.get(i).getApplyFlightNum())) {
applyFlightNumCell.setCellValue(""); applyFlightNumCell.setCellValue("");
}else{ } else {
applyFlightNumCell.setCellValue(saleRules.get(i).getApplyFlightNum()); applyFlightNumCell.setCellValue(saleRules.get(i).getApplyFlightNum());
} }
Cell notApplicableFlightNumCell = r.createCell(7); Cell notApplicableFlightNumCell = r.createCell(7);
notApplicableFlightNumCell.setCellStyle(cellStyle); notApplicableFlightNumCell.setCellStyle(cellStyle);
if (StringUtils.isBlank(saleRules.get(i).getNotApplicableFlightNum())) { if (StringUtils.isBlank(saleRules.get(i).getNotApplicableFlightNum())) {
notApplicableFlightNumCell.setCellValue(""); notApplicableFlightNumCell.setCellValue("");
}else{ } else {
notApplicableFlightNumCell.setCellValue(saleRules.get(i).getNotApplicableFlightNum()); notApplicableFlightNumCell.setCellValue(saleRules.get(i).getNotApplicableFlightNum());
} }
Cell routeTypeCell = r.createCell(8); Cell routeTypeCell = r.createCell(8);
routeTypeCell.setCellStyle(cellStyle); routeTypeCell.setCellStyle(cellStyle);
if (saleRules.get(i).getRouteType()==null) { if (saleRules.get(i).getRouteType() == null) {
routeTypeCell.setCellValue("不限"); routeTypeCell.setCellValue("不限");
}else if (saleRules.get(i).getRouteType()==0) { } else if (saleRules.get(i).getRouteType() == 0) {
routeTypeCell.setCellValue("不限"); routeTypeCell.setCellValue("不限");
}else if (saleRules.get(i).getRouteType()==1) { } else if (saleRules.get(i).getRouteType() == 1) {
routeTypeCell.setCellValue("单程"); routeTypeCell.setCellValue("单程");
}else if (saleRules.get(i).getRouteType()==2) { } else if (saleRules.get(i).getRouteType() == 2) {
routeTypeCell.setCellValue("往返"); routeTypeCell.setCellValue("往返");
}else{ } else {
routeTypeCell.setCellValue("不限"); routeTypeCell.setCellValue("不限");
} }
Cell policyType = r.createCell(9); Cell policyType = r.createCell(9);
policyType.setCellStyle(cellStyle); policyType.setCellStyle(cellStyle);
if (saleRules.get(i).getPolicyType()==null) { if (saleRules.get(i).getPolicyType() == null) {
policyType.setCellValue("普通"); policyType.setCellValue("普通");
}else if (saleRules.get(i).getPolicyType()==1) { } else if (saleRules.get(i).getPolicyType() == 1) {
policyType.setCellValue("普通"); policyType.setCellValue("普通");
}else if (saleRules.get(i).getPolicyType()==2) { } else if (saleRules.get(i).getPolicyType() == 2) {
policyType.setCellValue("积分"); policyType.setCellValue("积分");
}else if (saleRules.get(i).getPolicyType()==3) { } else if (saleRules.get(i).getPolicyType() == 3) {
policyType.setCellValue("普通促销"); policyType.setCellValue("普通促销");
}else if (saleRules.get(i).getPolicyType()==4) { } else if (saleRules.get(i).getPolicyType() == 4) {
policyType.setCellValue("扣位"); policyType.setCellValue("扣位");
}else if (saleRules.get(i).getPolicyType()==5) { } else if (saleRules.get(i).getPolicyType() == 5) {
policyType.setCellValue("促销积分"); policyType.setCellValue("促销积分");
}else if (saleRules.get(i).getPolicyType()==6) { } else if (saleRules.get(i).getPolicyType() == 6) {
policyType.setCellValue("AG"); policyType.setCellValue("AG");
}else if (saleRules.get(i).getPolicyType()==7) { } else if (saleRules.get(i).getPolicyType() == 7) {
policyType.setCellValue("私有运价"); policyType.setCellValue("私有运价");
}else{ } else {
policyType.setCellValue("普通"); policyType.setCellValue("普通");
} }
Cell policyDesc = r.createCell(10); Cell policyDesc = r.createCell(10);
policyDesc.setCellStyle(cellStyle); policyDesc.setCellStyle(cellStyle);
if (saleRules.get(i).getPolicyDesc()==null) { if (saleRules.get(i).getPolicyDesc() == null) {
policyDesc.setCellValue(""); policyDesc.setCellValue("");
}else{ } else {
policyDesc.setCellValue(saleRules.get(i).getPolicyDesc()); policyDesc.setCellValue(saleRules.get(i).getPolicyDesc());
} }
Cell point = r.createCell(11); Cell point = r.createCell(11);
point.setCellStyle(cellStyle); point.setCellStyle(cellStyle);
if (saleRules.get(i).getPoint()==null) { if (saleRules.get(i).getPoint() == null) {
point.setCellValue(""); point.setCellValue("");
}else{ } else {
point.setCellValue(saleRules.get(i).getPoint()); point.setCellValue(saleRules.get(i).getPoint());
} }
Cell costPrice = r.createCell(12); Cell costPrice = r.createCell(12);
costPrice.setCellStyle(cellStyle); costPrice.setCellStyle(cellStyle);
if (saleRules.get(i).getCostPrice()==null) { if (saleRules.get(i).getCostPrice() == null) {
costPrice.setCellValue(""); costPrice.setCellValue("");
}else{ } else {
costPrice.setCellValue(saleRules.get(i).getCostPrice()); costPrice.setCellValue(saleRules.get(i).getCostPrice());
} }
Cell saleSdate = r.createCell(13); Cell saleSdate = r.createCell(13);
saleSdate.setCellStyle(cellStyle); saleSdate.setCellStyle(cellStyle);
if (saleRules.get(i).getSaleSdate()==null) { if (saleRules.get(i).getSaleSdate() == null) {
saleSdate.setCellValue(""); saleSdate.setCellValue("");
}else{ } else {
saleSdate.setCellValue(saleRules.get(i).getSaleSdate()); saleSdate.setCellValue(saleRules.get(i).getSaleSdate());
} }
Cell saleEdate = r.createCell(14); Cell saleEdate = r.createCell(14);
saleEdate.setCellStyle(cellStyle); saleEdate.setCellStyle(cellStyle);
if (saleRules.get(i).getSaleEdate()==null) { if (saleRules.get(i).getSaleEdate() == null) {
saleEdate.setCellValue(""); saleEdate.setCellValue("");
}else{ } else {
saleEdate.setCellValue(saleRules.get(i).getSaleEdate()); saleEdate.setCellValue(saleRules.get(i).getSaleEdate());
} }
Cell ticketDays = r.createCell(15); Cell ticketDays = r.createCell(15);
ticketDays.setCellStyle(cellStyle); ticketDays.setCellStyle(cellStyle);
if (saleRules.get(i).getTicketDays()==null) { if (saleRules.get(i).getTicketDays() == null) {
ticketDays.setCellValue(""); ticketDays.setCellValue("");
}else{ } else {
ticketDays.setCellValue(saleRules.get(i).getTicketDays()); ticketDays.setCellValue(saleRules.get(i).getTicketDays());
} }
Cell tripSdate = r.createCell(16); Cell tripSdate = r.createCell(16);
tripSdate.setCellStyle(cellStyle); tripSdate.setCellStyle(cellStyle);
if (saleRules.get(i).getTripSdate()==null) { if (saleRules.get(i).getTripSdate() == null) {
tripSdate.setCellValue(""); tripSdate.setCellValue("");
}else{ } else {
tripSdate.setCellValue(saleRules.get(i).getTripSdate()); tripSdate.setCellValue(saleRules.get(i).getTripSdate());
} }
Cell tripEdate = r.createCell(17); Cell tripEdate = r.createCell(17);
tripEdate.setCellStyle(cellStyle); tripEdate.setCellStyle(cellStyle);
if (saleRules.get(i).getTripEdate()==null) { if (saleRules.get(i).getTripEdate() == null) {
tripEdate.setCellValue(""); tripEdate.setCellValue("");
}else{ } else {
tripEdate.setCellValue(saleRules.get(i).getTripEdate()); tripEdate.setCellValue(saleRules.get(i).getTripEdate());
} }
Cell statusCell = r.createCell(18); Cell statusCell = r.createCell(18);
statusCell.setCellStyle(cellStyle); statusCell.setCellStyle(cellStyle);
if (saleRules.get(i).getStatus()==null) { if (saleRules.get(i).getStatus() == null) {
statusCell.setCellValue("禁用"); statusCell.setCellValue("禁用");
}else if (saleRules.get(i).getStatus()==0) { } else if (saleRules.get(i).getStatus() == 0) {
statusCell.setCellValue("禁用"); statusCell.setCellValue("禁用");
}else if (saleRules.get(i).getStatus()==1) { } else if (saleRules.get(i).getStatus() == 1) {
statusCell.setCellValue("启用"); statusCell.setCellValue("启用");
}else{ } else {
statusCell.setCellValue("禁用"); statusCell.setCellValue("禁用");
} }
Cell minPrice = r.createCell(19); Cell minPrice = r.createCell(19);
minPrice.setCellStyle(cellStyle); minPrice.setCellStyle(cellStyle);
if (saleRules.get(i).getMinPrice()==null) { if (saleRules.get(i).getMinPrice() == null) {
minPrice.setCellValue(""); minPrice.setCellValue("");
}else{ } else {
minPrice.setCellValue(saleRules.get(i).getMinPrice()); minPrice.setCellValue(saleRules.get(i).getMinPrice());
} }
Cell maxPrice = r.createCell(20); Cell maxPrice = r.createCell(20);
maxPrice.setCellStyle(cellStyle); maxPrice.setCellStyle(cellStyle);
if (saleRules.get(i).getMaxPrice()==null) { if (saleRules.get(i).getMaxPrice() == null) {
maxPrice.setCellValue(""); maxPrice.setCellValue("");
}else{ } else {
maxPrice.setCellValue(saleRules.get(i).getMaxPrice()); maxPrice.setCellValue(saleRules.get(i).getMaxPrice());
} }
Cell minProfit = r.createCell(21); Cell minProfit = r.createCell(21);
minProfit.setCellStyle(cellStyle); minProfit.setCellStyle(cellStyle);
if (saleRules.get(i).getMinProfit()==null) { if (saleRules.get(i).getMinProfit() == null) {
minProfit.setCellValue(""); minProfit.setCellValue("");
}else{ } else {
minProfit.setCellValue(saleRules.get(i).getMinProfit()); minProfit.setCellValue(saleRules.get(i).getMinProfit());
} }
Cell adultPricePoint = r.createCell(22); Cell adultPricePoint = r.createCell(22);
adultPricePoint.setCellStyle(cellStyle); adultPricePoint.setCellStyle(cellStyle);
if (saleRules.get(i).getAdultPricePoint()==null) { if (saleRules.get(i).getAdultPricePoint() == null) {
adultPricePoint.setCellValue(0.0); adultPricePoint.setCellValue(0.0);
}else{ } else {
adultPricePoint.setCellValue(saleRules.get(i).getAdultPricePoint().toString()); adultPricePoint.setCellValue(saleRules.get(i).getAdultPricePoint().toString());
} }
Cell adultAddPrice = r.createCell(23); Cell adultAddPrice = r.createCell(23);
adultAddPrice.setCellStyle(cellStyle); adultAddPrice.setCellStyle(cellStyle);
if (saleRules.get(i).getAdultAddPrice()==null) { if (saleRules.get(i).getAdultAddPrice() == null) {
adultAddPrice.setCellValue(0); adultAddPrice.setCellValue(0);
}else{ } else {
adultAddPrice.setCellValue(saleRules.get(i).getAdultAddPrice()); adultAddPrice.setCellValue(saleRules.get(i).getAdultAddPrice());
} }
// Cell adultAddTax = r.createCell(24);
// adultAddTax.setCellStyle(cellStyle);
// if (saleRules.get(i).getAdultAddTax()==null) {
// adultAddTax.setCellValue(0);
// }else{
// adultAddTax.setCellValue(saleRules.get(i).getAdultAddTax());
// }
// Cell adultTaxPoint = r.createCell(23); // Cell adultTaxPoint = r.createCell(23);
// adultTaxPoint.setCellStyle(cellStyle); // adultTaxPoint.setCellStyle(cellStyle);
// if (saleRules.get(i).getAdultPricePoint()==null) { // if (saleRules.get(i).getAdultPricePoint()==null) {
...@@ -469,6 +467,14 @@ public class DownLoadService { ...@@ -469,6 +467,14 @@ public class DownLoadService {
// adultTaxPoint.setCellValue(saleRules.get(i).getAdultPricePoint().toString()); // adultTaxPoint.setCellValue(saleRules.get(i).getAdultPricePoint().toString());
// } // }
// Cell adultAddTax = r.createCell(24);
// adultAddTax.setCellStyle(cellStyle);
// if (saleRules.get(i).getAdultAddTax()==null) {
// adultAddTax.setCellValue(0);
// }else{
// adultAddTax.setCellValue(saleRules.get(i).getAdultAddTax());
// }
// Cell adultTaxPoint = r.createCell(25); // Cell adultTaxPoint = r.createCell(25);
// adultTaxPoint.setCellStyle(cellStyle); // adultTaxPoint.setCellStyle(cellStyle);
// if (saleRules.get(i).getAdultTaxPoint()==null) { // if (saleRules.get(i).getAdultTaxPoint()==null) {
...@@ -479,17 +485,17 @@ public class DownLoadService { ...@@ -479,17 +485,17 @@ public class DownLoadService {
Cell childPricePoint = r.createCell(26); Cell childPricePoint = r.createCell(26);
childPricePoint.setCellStyle(cellStyle); childPricePoint.setCellStyle(cellStyle);
if (saleRules.get(i).getChildPricePoint()==null) { if (saleRules.get(i).getChildPricePoint() == null) {
childPricePoint.setCellValue(0.0); childPricePoint.setCellValue(0.0);
}else{ } else {
childPricePoint.setCellValue(saleRules.get(i).getChildPricePoint().toString()); childPricePoint.setCellValue(saleRules.get(i).getChildPricePoint().toString());
} }
Cell childAddPrice = r.createCell(27); Cell childAddPrice = r.createCell(27);
childAddPrice.setCellStyle(cellStyle); childAddPrice.setCellStyle(cellStyle);
if (saleRules.get(i).getChildAddPrice()==null) { if (saleRules.get(i).getChildAddPrice() == null) {
childAddPrice.setCellValue(0); childAddPrice.setCellValue(0);
}else{ } else {
childAddPrice.setCellValue(saleRules.get(i).getChildAddPrice()); childAddPrice.setCellValue(saleRules.get(i).getChildAddPrice());
} }
...@@ -515,7 +521,7 @@ public class DownLoadService { ...@@ -515,7 +521,7 @@ public class DownLoadService {
Cell saleRuleId = r.createCell(31); Cell saleRuleId = r.createCell(31);
saleRuleId.setCellStyle(cellStyle); saleRuleId.setCellStyle(cellStyle);
if (saleRuleId!=null) { if (saleRuleId != null) {
saleRuleId.setCellValue(saleRules.get(i).getId()); saleRuleId.setCellValue(saleRules.get(i).getId());
} }
...@@ -523,7 +529,7 @@ public class DownLoadService { ...@@ -523,7 +529,7 @@ public class DownLoadService {
flightCycle.setCellStyle(cellStyle); flightCycle.setCellStyle(cellStyle);
if (StringUtils.isBlank(saleRules.get(i).getFlightCycle())) { if (StringUtils.isBlank(saleRules.get(i).getFlightCycle())) {
flightCycle.setCellValue(""); flightCycle.setCellValue("");
}else{ } else {
flightCycle.setCellValue(saleRules.get(i).getFlightCycle()); flightCycle.setCellValue(saleRules.get(i).getFlightCycle());
} }
...@@ -531,7 +537,7 @@ public class DownLoadService { ...@@ -531,7 +537,7 @@ public class DownLoadService {
floorPrice.setCellStyle(cellStyle); floorPrice.setCellStyle(cellStyle);
if (saleRules.get(i).getFloorPrice() == null) { if (saleRules.get(i).getFloorPrice() == null) {
floorPrice.setCellValue(""); floorPrice.setCellValue("");
}else{ } else {
floorPrice.setCellValue(saleRules.get(i).getFloorPrice()); floorPrice.setCellValue(saleRules.get(i).getFloorPrice());
} }
...@@ -539,7 +545,7 @@ public class DownLoadService { ...@@ -539,7 +545,7 @@ public class DownLoadService {
floorTax.setCellStyle(cellStyle); floorTax.setCellStyle(cellStyle);
if (saleRules.get(i).getFloorTax() == null) { if (saleRules.get(i).getFloorTax() == null) {
floorTax.setCellValue(""); floorTax.setCellValue("");
}else{ } else {
floorTax.setCellValue(saleRules.get(i).getFloorTax()); floorTax.setCellValue(saleRules.get(i).getFloorTax());
} }
...@@ -547,12 +553,12 @@ public class DownLoadService { ...@@ -547,12 +553,12 @@ public class DownLoadService {
fitShare.setCellStyle(cellStyle); fitShare.setCellStyle(cellStyle);
if (saleRules.get(i).getFitShare() == null) { if (saleRules.get(i).getFitShare() == null) {
fitShare.setCellValue(""); fitShare.setCellValue("");
}else{ } else {
if(saleRules.get(i).getFitShare() == 1){ if (saleRules.get(i).getFitShare() == 1) {
fitShare.setCellValue("适用"); fitShare.setCellValue("适用");
}else if(saleRules.get(i).getFitShare() == 0){ } else if (saleRules.get(i).getFitShare() == 0) {
fitShare.setCellValue("不适用"); fitShare.setCellValue("不适用");
}else { } else {
fitShare.setCellValue(saleRules.get(i).getFitShare()); fitShare.setCellValue(saleRules.get(i).getFitShare());
} }
} }
...@@ -561,7 +567,7 @@ public class DownLoadService { ...@@ -561,7 +567,7 @@ public class DownLoadService {
fitNationality.setCellStyle(cellStyle); fitNationality.setCellStyle(cellStyle);
if (saleRules.get(i).getFitNationality() == null) { if (saleRules.get(i).getFitNationality() == null) {
fitNationality.setCellValue(""); fitNationality.setCellValue("");
}else{ } else {
fitNationality.setCellValue(saleRules.get(i).getFitNationality()); fitNationality.setCellValue(saleRules.get(i).getFitNationality());
} }
...@@ -569,7 +575,7 @@ public class DownLoadService { ...@@ -569,7 +575,7 @@ public class DownLoadService {
fitNationality.setCellStyle(cellStyle); fitNationality.setCellStyle(cellStyle);
if (saleRules.get(i).getDisFitNationality() == null) { if (saleRules.get(i).getDisFitNationality() == null) {
disFitNationality.setCellValue(""); disFitNationality.setCellValue("");
}else{ } else {
disFitNationality.setCellValue(saleRules.get(i).getDisFitNationality()); disFitNationality.setCellValue(saleRules.get(i).getDisFitNationality());
} }
...@@ -577,7 +583,7 @@ public class DownLoadService { ...@@ -577,7 +583,7 @@ public class DownLoadService {
ageRange.setCellStyle(cellStyle); ageRange.setCellStyle(cellStyle);
if (saleRules.get(i).getAgeRange() == null) { if (saleRules.get(i).getAgeRange() == null) {
ageRange.setCellValue(""); ageRange.setCellValue("");
}else{ } else {
ageRange.setCellValue(saleRules.get(i).getAgeRange()); ageRange.setCellValue(saleRules.get(i).getAgeRange());
} }
...@@ -585,38 +591,38 @@ public class DownLoadService { ...@@ -585,38 +591,38 @@ public class DownLoadService {
attention.setCellStyle(cellStyle); attention.setCellStyle(cellStyle);
if (saleRules.get(i).getAttention() == null) { if (saleRules.get(i).getAttention() == null) {
attention.setCellValue(""); attention.setCellValue("");
}else{ } else {
attention.setCellValue(saleRules.get(i).getAttention()); attention.setCellValue(saleRules.get(i).getAttention());
} }
} }
//创建输出流 //创建输出流
os = new FileOutputStream(filePath+file); os = new FileOutputStream(filePath + file);
//将book中的数据写出 //将book中的数据写出
book.write(os); book.write(os);
}catch (Exception e) { } catch (Exception e) {
logger.error("fail:",e); logger.error("fail:", e);
}finally { } finally {
try { try {
if(book!=null){ if (book != null) {
book.close(); book.close();
} }
if(os!=null){ if (os != null) {
os.close(); os.close();
} }
}catch (Exception e){ } catch (Exception e) {
logger.error("关闭流异常",e); logger.error("关闭流异常", e);
} }
} }
Response response = new Response(); Response response = new Response();
response.setStatus(Response.Status.SUCCEED); response.setStatus(Response.Status.SUCCEED);
response.setData(filePath+file); response.setData(filePath + file);
return response; return response;
} }
public static HSSFWorkbook getBook(File file) { public static HSSFWorkbook getBook(File file) {
HSSFWorkbook book = null ; HSSFWorkbook book = null;
try { try {
book = new HSSFWorkbook(new FileInputStream(file)); book = new HSSFWorkbook(new FileInputStream(file));
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
...@@ -657,52 +663,59 @@ public class DownLoadService { ...@@ -657,52 +663,59 @@ public class DownLoadService {
return result; return result;
} }
public Response parseToSaleDetail(String requestBody){ public Response parseToSaleDetail(String requestBody) {
logger.info("自动报表任务请求解析报表。。。"); logger.info("自动报表任务请求解析报表。。。");
if(StringUtils.isBlank(requestBody)){ if (StringUtils.isBlank(requestBody)) {
return Response.error("参数为空"); return Response.error("参数为空");
} }
JSONObject obj = JSONObject.parseObject(requestBody); JSONObject obj = JSONObject.parseObject(requestBody);
Map<String, String> params = JSONObject.parseObject(obj.getString("data"), new TypeReference<Map<String, String>>(){}); Map<String, String> params = JSONObject.parseObject(obj.getString("data"), new TypeReference<Map<String, String>>() {
});
String key = obj.getString("info"); String key = obj.getString("info");
//将Map解析为报表内容对象 //将Map解析为报表内容对象
List<SaleDetail> saleDetailList = new ArrayList<>(); List<SaleDetail> saleDetailList = new ArrayList<>();
try{ try {
//解析主逻辑 //解析主逻辑
saleDetailList = parseToSaleDetail.parseToSaleDetailMain(params,key); saleDetailList = parseToSaleDetail.parseToSaleDetailMain(params, key);
}catch (Exception e){ } catch (Exception e) {
logger.error("[自动报表] 解析Map到SaleDetail List 出现异常",e); logger.error("[自动报表] 解析Map到SaleDetail List 出现异常", e);
} }
logger.info("自动报表任务解析数据完成,解析结果:saleDetailList.size() = " + saleDetailList.size()); logger.info("自动报表任务解析数据完成,解析结果:saleDetailList.size() = " + saleDetailList.size());
return Response.success(saleDetailList); return Response.success(saleDetailList);
} }
public Response downLoadSaleDetailFromAutoSource(String requestBody){ /**
* 快速导出报表(新)
*
* @param requestBody
* @return
*/
public Response downLoadSaleDetailFromAutoSource(String requestBody) {
String keyList = JSONObject.parseObject(requestBody).getString("keyList"); String keyList = JSONObject.parseObject(requestBody).getString("keyList");
logger.info("[AutoSource] 从saleDetail表数据中直接下载报表,keyList="+keyList); logger.info("[AutoSource] 从saleDetail表数据中直接下载报表,keyList=" + keyList);
long beginTime = System.currentTimeMillis(); long beginTime = System.currentTimeMillis();
Map<String,String> params = new HashMap<>(); Map<String, String> params = new HashMap<>();
params.put("keyList",keyList); params.put("keyList", keyList);
String result = HttpsSendData.send(overseasAirTicketUrl + "autoSaleDetai/findByKeyList.do",params); String result = HttpsSendData.send(overseasAirTicketUrl + "autoSaleDetai/findByKeyList", params);
NoteResult noteResult = JSONObject.parseObject(result, NoteResult.class); NoteResult noteResult = JSONObject.parseObject(result, NoteResult.class);
if(noteResult.getStatus() != 0){ if (noteResult.getStatus() != 0) {
logger.error("[AutoSource] 从saleDetail表中查询报表数据失败,keyList="+keyList); logger.error("[AutoSource] 从saleDetail表中查询报表数据失败,keyList=" + keyList);
return Response.error("[AutoSource] 从saleDetail表中查询报表数据失败,key="+keyList); return Response.error("[AutoSource] 从saleDetail表中查询报表数据失败,key=" + keyList);
} }
List<SaleDetail> saleDetails = JSONArray.parseArray(JSONArray.toJSONString(noteResult.getData()),SaleDetail.class); List<SaleDetail> saleDetails = JSONArray.parseArray(JSONArray.toJSONString(noteResult.getData()), SaleDetail.class);
Response response = new Response(); Response response = new Response();
logger.info("[AutoSource] 获取数据库表数据,总用时:"+(System.currentTimeMillis()-beginTime)+"ms"); logger.info("[AutoSource] 获取数据库表数据,总用时:" + (System.currentTimeMillis() - beginTime) + "ms");
try{ try {
String customerId = keyList.substring(0,keyList.indexOf("_")); String customerId = keyList.substring(0, keyList.indexOf("_"));
final String filePath = saleDetailReportExcelPath + customerId + "/SalesDetailReport/";//指定文件保存路径 final String filePath = saleDetailReportExcelPath + customerId + "/SalesDetailReport/";//指定文件保存路径
String path = parseToSaleDetail.createSaleDetailReport(saleDetails,filePath); String path = parseToSaleDetail.createSaleDetailReport(saleDetails, filePath);
response.setStatus(Response.Status.SUCCEED); response.setStatus(Response.Status.SUCCEED);
response.setData(path); response.setData(path);
response.setErrorMessage("[AutoSource] 生成报表成功,总用时:"+(System.currentTimeMillis()-beginTime)+"ms"); response.setErrorMessage("[AutoSource] 生成报表成功,总用时:" + (System.currentTimeMillis() - beginTime) + "ms");
logger.info("[AutoSource] 生成销售明细报表,总用时:"+(System.currentTimeMillis()-beginTime)+"ms"); logger.info("[AutoSource] 生成销售明细报表,总用时:" + (System.currentTimeMillis() - beginTime) + "ms");
return response; return response;
}catch (Exception e){ } catch (Exception e) {
logger.error("[AutoSource] 生成报表发生异常",e); logger.error("[AutoSource] 生成报表发生异常", e);
return Response.error("[AutoSource] 生成报表发生异常"); return Response.error("[AutoSource] 生成报表发生异常");
} }
} }
......
...@@ -6,6 +6,7 @@ import com.yutu.base.entity.Response; ...@@ -6,6 +6,7 @@ import com.yutu.base.entity.Response;
import com.yutu.base.entity.SaleDetail; import com.yutu.base.entity.SaleDetail;
import com.yutu.base.entity.Store; import com.yutu.base.entity.Store;
import com.yutu.base.entity.User; import com.yutu.base.entity.User;
import com.yutu.base.utils.DateUtil;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import jxl.CellView; import jxl.CellView;
import jxl.Workbook; import jxl.Workbook;
...@@ -60,8 +61,9 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -60,8 +61,9 @@ public class ParseToSaleDetail extends BaseService{
SaleDetail temp = new SaleDetail(); SaleDetail temp = new SaleDetail();
temp.setId(UUID.randomUUID().toString()); temp.setId(UUID.randomUUID().toString());
temp.setCreateTime(new Date()); temp.setCreateTime(DateUtil.DateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
temp.setUpdateTime(new Date()); // temp.setUpdateTime(new Date());
temp.setUpdateTime(DateUtil.DateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
temp.setKey(key);//标识 temp.setKey(key);//标识
temp.setOfficalReceivedPaymentStatus(""); temp.setOfficalReceivedPaymentStatus("");
temp.setOfficalActualExpendAmount(0.0); temp.setOfficalActualExpendAmount(0.0);
...@@ -87,10 +89,11 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -87,10 +89,11 @@ public class ParseToSaleDetail extends BaseService{
String passengerIds = purchObj.getString("passengerIds");//乘客id String passengerIds = purchObj.getString("passengerIds");//乘客id
int flightSize = flightInfoIds.replace(",","").length()/36;//行程段数 int flightSize = flightInfoIds.replace(",","").length()/36;//行程段数
int passengerSize = passengerIds.replace(",","").length()/36;//乘客人量 int passengerSize = passengerIds.replace(",","").length()/36;//乘客人量
String route = purchObj.getString("routeType"); // String route = purchObj.getString("routeType");
// String route = orderArr.get(0).getString("routeType");
String orderTripType = "";//订单行程类型 String orderTripType = "";//订单行程类型
String routeType = convertRouteType(route);//采购行程类型 String routeType = convertTripTypeNum(route);//采购行程类型
String ticketType = convertRouteType(route);//票号类型 String ticketType = convertTripTypeNum(route);//票号类型
String points = purchObj.getString("points");//使用积分 String points = purchObj.getString("points");//使用积分
String localCurrency = purchObj.getString("localCurrencyCode");//采购币种 String localCurrency = purchObj.getString("localCurrencyCode");//采购币种
String currency = purchObj.getString("currencyCode");//采购币种 String currency = purchObj.getString("currencyCode");//采购币种
...@@ -127,7 +130,8 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -127,7 +130,8 @@ public class ParseToSaleDetail extends BaseService{
saleDetailList.get(num).setPurchaseAccount(purchaseAccount);//26 saleDetailList.get(num).setPurchaseAccount(purchaseAccount);//26
saleDetailList.get(num).setPurchaseOrderNo(purchaseOrderNo);//27 saleDetailList.get(num).setPurchaseOrderNo(purchaseOrderNo);//27
saleDetailList.get(num).setOperator(trueName);//31 saleDetailList.get(num).setOperator(trueName);//31
saleDetailList.get(num).setPurchaseTime(purchObj.getDate("purchaseTime"));//32 // saleDetailList.get(num).setPurchaseTime(purchObj.getDate("purchaseTime"));//32
saleDetailList.get(num).setPurchaseTime(purchObj.getString("purchaseTime"));//32
saleDetailList.get(num).setOrderValueAdded(orderType);//33 saleDetailList.get(num).setOrderValueAdded(orderType);//33
saleDetailList.get(num).setRemark(remarkText);//35 saleDetailList.get(num).setRemark(remarkText);//35
saleDetailList.get(num).setPurchasePrice_local(Double.parseDouble(localTotalPrice));//16 saleDetailList.get(num).setPurchasePrice_local(Double.parseDouble(localTotalPrice));//16
...@@ -164,8 +168,12 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -164,8 +168,12 @@ public class ParseToSaleDetail extends BaseService{
SaleDetail temp1 = new SaleDetail(); SaleDetail temp1 = new SaleDetail();
temp1.setId(UUID.randomUUID().toString()); temp1.setId(UUID.randomUUID().toString());
temp1.setCreateTime(new Date()); // temp1.setCreateTime(new Date());
temp1.setUpdateTime(new Date()); // temp1.setUpdateTime(new Date());
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.setKey(key);//标识
temp1.setOfficalReceivedPaymentStatus(""); temp1.setOfficalReceivedPaymentStatus("");
temp1.setOfficalActualExpendAmount(0.0); temp1.setOfficalActualExpendAmount(0.0);
...@@ -192,8 +200,9 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -192,8 +200,9 @@ public class ParseToSaleDetail extends BaseService{
String policySource = orderObj.getString("policySource");//政策信息 String policySource = orderObj.getString("policySource");//政策信息
status = convertOrderStatus(orderStatus); status = convertOrderStatus(orderStatus);
saleDetailList.get(num+count_saleOrder-1).setCreateOrderTime(orderObj.getDate("createTime"));//0 saleDetailList.get(num+count_saleOrder-1).setCreateOrderTime(orderObj.getString("createTime"));//0
saleDetailList.get(num+count_saleOrder-1).setTicketTime(orderObj.getDate("ticketTime"));//1 // saleDetailList.get(num+count_saleOrder-1).setTicketTime(orderObj.getDate("ticketTime"));//1
saleDetailList.get(num+count_saleOrder-1).setTicketTime(orderObj.getString("ticketTime"));//1
saleDetailList.get(num+count_saleOrder-1).setOuterOrderNo(outerOrderNo);//2 saleDetailList.get(num+count_saleOrder-1).setOuterOrderNo(outerOrderNo);//2
saleDetailList.get(num+count_saleOrder-1).setChannel(store.getChannelCode());//3 saleDetailList.get(num+count_saleOrder-1).setChannel(store.getChannelCode());//3
saleDetailList.get(num+count_saleOrder-1).setStore(store.getStoreShortName());//4 saleDetailList.get(num+count_saleOrder-1).setStore(store.getStoreShortName());//4
...@@ -415,8 +424,10 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -415,8 +424,10 @@ public class ParseToSaleDetail extends BaseService{
SaleDetail temp2 = new SaleDetail(); SaleDetail temp2 = new SaleDetail();
temp2.setId(UUID.randomUUID().toString()); temp2.setId(UUID.randomUUID().toString());
temp2.setCreateTime(new Date()); // temp2.setCreateTime(new Date());
temp2.setUpdateTime(new Date()); // temp2.setUpdateTime(new Date());
temp2.setCreateTime(DateUtil.DateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
temp2.setUpdateTime(DateUtil.DateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
temp2.setKey(key);//标识 temp2.setKey(key);//标识
temp2.setOfficalReceivedPaymentStatus(""); temp2.setOfficalReceivedPaymentStatus("");
temp2.setOfficalActualExpendAmount(0.0); temp2.setOfficalActualExpendAmount(0.0);
...@@ -496,8 +507,10 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -496,8 +507,10 @@ public class ParseToSaleDetail extends BaseService{
if(count_saleOrder==1 && count_transDetail>1){ if(count_saleOrder==1 && count_transDetail>1){
for(int repeat = 0;repeat < (count_transDetail-count_saleOrder) ;repeat++){ for(int repeat = 0;repeat < (count_transDetail-count_saleOrder) ;repeat++){
saleDetailList.get(num + repeat +1).setCreateTime(createTime); // saleDetailList.get(num + repeat +1).setCreateTime(createTime);
saleDetailList.get(num + repeat +1).setTicketTime(ticketTime); // saleDetailList.get(num + repeat +1).setTicketTime(ticketTime);
saleDetailList.get(num + repeat +1).setCreateTime(DateUtil.DateToStr(createTime, "yyyy-MM-dd HH:mm:ss"));
saleDetailList.get(num + repeat +1).setTicketTime(DateUtil.DateToStr(ticketTime, "yyyy-MM-dd HH:mm:ss"));
saleDetailList.get(num + repeat +1).setOuterOrderNo(outerOrderNo); saleDetailList.get(num + repeat +1).setOuterOrderNo(outerOrderNo);
saleDetailList.get(num + repeat +1).setChannel(""); saleDetailList.get(num + repeat +1).setChannel("");
saleDetailList.get(num + repeat +1).setStore(""); saleDetailList.get(num + repeat +1).setStore("");
...@@ -626,6 +639,17 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -626,6 +639,17 @@ public class ParseToSaleDetail extends BaseService{
} }
return key; return key;
} }
public String convertTripTypeNum(String key){
switch (key) {
case "1":key = "单程";
break;
case "2":key = "往返";
break;
default:key ="";
break;
}
return key;
}
public String convertOrderType(String key){ public String convertOrderType(String key){
switch (key) { switch (key) {
case "ticket":key = ""; case "ticket":key = "";
...@@ -642,12 +666,18 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -642,12 +666,18 @@ public class ParseToSaleDetail extends BaseService{
return key; return key;
} }
/**
* 快速导出报表(新)
* @param saleDetails
* @param filePath
* @return
*/
public String createSaleDetailReport(List<SaleDetail> saleDetails,String filePath){ public String createSaleDetailReport(List<SaleDetail> saleDetails,String filePath){
logger.info("开始生成报表"); logger.info("开始生成报表");
File files = new File(filePath); File files = new File(filePath);
if (!files.exists()) { files.mkdir(); } if (!files.exists()) { files.mkdir(); }
WritableWorkbook workbook = null; WritableWorkbook workbook = null;
String file = filePath + new SimpleDateFormat("yyMMddHHmmss").format(new Date())+".xls"; String file = filePath + new SimpleDateFormat("yyMMddHHmmss").format(new Date())+".xlsx";
try{ try{
workbook = Workbook.createWorkbook(new File(file)); workbook = Workbook.createWorkbook(new File(file));
...@@ -788,19 +818,22 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -788,19 +818,22 @@ public class ParseToSaleDetail extends BaseService{
} }
if(saleDetail.getCreateOrderTime()!=null){ if(saleDetail.getCreateOrderTime()!=null){
sheet.addCell(new Label(0,i+1,date_alt(String.valueOf(saleDetail.getCreateOrderTime().getTime())),wcf2)); // sheet.addCell(new Label(0,i+1,date_alt(String.valueOf(saleDetail.getCreateOrderTime().getTime())),wcf2));
sheet.addCell(new Label(0,i+1,date_alt(saleDetail.getCreateOrderTime()),wcf2));
}else{ }else{
if(saleDetails.get(i-1) != null){ if(saleDetails.get(i-1) != null){
if(saleDetail.getOuterOrderNo().equals(saleDetails.get(i-1).getOuterOrderNo())){ if(saleDetail.getOuterOrderNo().equals(saleDetails.get(i-1).getOuterOrderNo())){
if(saleDetails.get(i-1).getCreateOrderTime() != null){ if(saleDetails.get(i-1).getCreateOrderTime() != null){
saleDetail.setCreateOrderTime(saleDetails.get(i-1).getCreateOrderTime()); saleDetail.setCreateOrderTime(saleDetails.get(i-1).getCreateOrderTime());
} }
sheet.addCell(new Label(0,i+1,date_alt(String.valueOf(saleDetails.get(i-1).getCreateOrderTime().getTime())),wcf2)); // sheet.addCell(new Label(0,i+1,date_alt(String.valueOf(saleDetails.get(i-1).getCreateOrderTime().getTime())),wcf2));
sheet.addCell(new Label(0,i+1,date_alt(String.valueOf(saleDetails.get(i-1).getCreateOrderTime())),wcf2));
} }
} }
} }
if(saleDetail.getTicketTime()!=null){ if(saleDetail.getTicketTime()!=null){
sheet.addCell(new Label(1,i+1,date_alt(String.valueOf(saleDetail.getTicketTime().getTime())),wcf2)); // sheet.addCell(new Label(1,i+1,date_alt(String.valueOf(saleDetail.getTicketTime().getTime())),wcf2));
sheet.addCell(new Label(1,i+1,date_alt(saleDetail.getTicketTime()),wcf2));
} }
if(saleDetail.getOuterOrderNo()!=null){ if(saleDetail.getOuterOrderNo()!=null){
sheet.addCell(new Label(2,i+1,saleDetail.getOuterOrderNo(),wcf2)); sheet.addCell(new Label(2,i+1,saleDetail.getOuterOrderNo(),wcf2));
...@@ -924,7 +957,8 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -924,7 +957,8 @@ public class ParseToSaleDetail extends BaseService{
sheet.addCell(new Label(33,i+1,saleDetail.getOperator(),wcf2)); sheet.addCell(new Label(33,i+1,saleDetail.getOperator(),wcf2));
} }
if(saleDetail.getPurchaseTime()!=null){ if(saleDetail.getPurchaseTime()!=null){
sheet.addCell(new Label(34,i+1,date_alt(String.valueOf(saleDetail.getPurchaseTime().getTime())),wcf2)); // sheet.addCell(new Label(34,i+1,date_alt(String.valueOf(saleDetail.getPurchaseTime().getTime())),wcf2));
sheet.addCell(new Label(34,i+1,date_alt(String.valueOf(saleDetail.getPurchaseTime())),wcf2));
} }
if(saleDetail.getOrderValueAdded()!=null){ if(saleDetail.getOrderValueAdded()!=null){
sheet.addCell(new Label(35,i+1,saleDetail.getOrderValueAdded(),wcf2)); sheet.addCell(new Label(35,i+1,saleDetail.getOrderValueAdded(),wcf2));
...@@ -977,9 +1011,12 @@ public class ParseToSaleDetail extends BaseService{ ...@@ -977,9 +1011,12 @@ public class ParseToSaleDetail extends BaseService{
}finally{ }finally{
try{ try{
workbook.write(); workbook.write();
workbook.close(); workbook.close();
}catch (Exception e){
}catch (Exception e){
e.printStackTrace();
logger.error("写出Execl异常",e);
} }
} }
return file; return file;
......
package com.yutu.base.service; package com.yutu.base.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yutu.base.entity.Response; import com.yutu.base.entity.Response;
import com.yutu.base.entity.SaleDetail;
import com.yutu.base.utils.HttpsSendData; import com.yutu.base.utils.HttpsSendData;
import com.yutu.comm.entity.exception.NoteResult;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner; import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -12,67 +17,206 @@ import org.springframework.stereotype.Service; ...@@ -12,67 +17,206 @@ import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingDeque; import java.util.concurrent.LinkedBlockingDeque;
/** /**
* 销售明细报表相关操作 * 销售明细报表相关操作
*/ */
@Service @Service
public class SaleDetailService implements CommandLineRunner { public class SaleDetailService implements CommandLineRunner {
@Value("${spring.urlConfig.overseasAirTicketUrl}") @Value("${spring.urlConfig.overseasAirTicketUrl}")
private String overseasAirTicketUrl; private String overseasAirTicketUrl;
@Value("${spring.urlConfig.statementApiUrl}")
private String statementApiUrl;
@Value("${spring.pathConfig.saleDetailReportExcelPath}")
private String saleDetailReportExcelPath;
@Value("${spring.urlConfig.productServiceUrl}")
private String productServiceUrl;
@Autowired
private ParseToSaleDetail parseToSaleDetail;
private static Logger logger = Logger.getLogger("saleDetail"); private static Logger logger = Logger.getLogger("saleDetail");
/**
* 获取销售明细报表数据
* 参数:
* startTime endTime 采购时间
* creatStartTime creatEndTime 生单时间
* ticketStartTime ticketEndTime 出票时间
*
*
*
* @param requestBody
* @return
*/
public NoteResult getSalesDetailList(String requestBody) {
NoteResult noteResult = new NoteResult();
if (StringUtils.isBlank(requestBody)) {
noteResult.setStatus(300);
noteResult.setMsg("参数不能为空 [requestBody]");
return noteResult;
}
logger.info("开始获取数据,参数:" + requestBody);
long beginTime = System.currentTimeMillis();
// String result = HttpsSendData.getPost(overseasAirTicketUrl+"orderInfo/getReportExcelData.do",requestBody); autoSaleDetai/findByKeyList
// String result = HttpsSendData.getPost(statementApiUrl + "saledetail/getSaleDetailList", requestBody);
String result = "{\"status\":0,\"msg\":\"查询成功\",\"data\":[{\"id\":\"00027727-2e16-485a-b1b3-f13d5079645a\",\"key\":\"df0286f1-eaac-11e7-adf4-a4badb3682ff_2018-10-25_2018-10-26\",\"createTime\":\"2018-12-21 09:41:41\",\"updateTime\":\"2018-12-21 09:41:41\",\"createOrderTime\":\"2018-10-24 16:24:26\",\"ticketTime\":\"2018-10-25 00:55:41\",\"outerOrderNo\":\"1380889117689\",\"channel\":\"Taobao\",\"store\":\"tbml\",\"tairLine\":\"HKT-DMK\",\"flightTime\":\"1544358000000\",\"flightNumber\":\"FD3028\",\"tripType\":\"单程\",\"pnrType\":\"去程\",\"pnr\":\"BWSTUZ\",\"passengerCount\":1,\"salePrice\":128,\"luggagePrice\":0,\"points\":0,\"purchaseCurrency\":\"CNY\",\"purchasePrice_local\":92,\"purchasePrice_rmb\":92,\"transactionDetail_local\":92,\"transactionDetail_rmb\":92,\"payMethod\":\"支付宝huochepiao3\",\"cardNumber\":\"支付宝huochepiao3\",\"profit\":36,\"transactionNumber\":\" \",\"orderValueAddedNo\":\" \",\"purchaseChannel\":\"艺龙\",\"purchaseAccount\":\"18513092060----huidarui\",\"purchaseOrderNo\":\"IT7JP5181024MO515179\",\"policyType\":\"普通促销\",\"policyCode\":\"TGJ泰国-中国\",\"orderStatus\":\"已出票\",\"operator\":\"曹坤祥\",\"purchaseTime\":\"2018-10-24 19:01:39\",\"orderValueAdded\":\" \",\"orderValueAddedSpecific\":\" \",\"remark\":\" \",\"officalReceivedPaymentStatus\":\" \",\"officalActualExpendAmount\":0,\"officalBalance\":0,\"officalRateAdjustDate\":null,\"passengerNames\":null,\"adultCount\":1,\"childCount\":0,\"sortIndex\":438}],\"info\":null}";
if (StringUtils.isBlank(result)) {
// return Response.error("获取数据失败");
noteResult.setStatus(300);
noteResult.setMsg("获取数据失败");
noteResult.setData(new HashMap<String, String>());
return noteResult;
}
JSONObject resultObj = JSONObject.parseObject(result);
if (resultObj.getInteger("status") != 0) {
// return Response.error("获取数据失败");
noteResult.setMsg("获取数据失败");
return noteResult;
}
logger.info("获取数据成功,共用时:" + (System.currentTimeMillis() - beginTime));
// Map<String, String> resultMap = resultObj.getObject("data", Map.class);
noteResult.setStatus(200);
// com.alibaba.fastjson.JSONException: can not cast to : java.util.Map
// noteResult.setData(resultMap);
noteResult.setData(resultObj.getObject("data", Object.class));
noteResult.setMsg("获取成功");
return noteResult;
}
/**
* 获取销售明细报表数据,并将其处理为 Excel
* @param requestBody
* @return
*/
public NoteResult downloadSalesDetailReportExcel(String requestBody){
NoteResult noteResult ;
System.out.println(requestBody);
String keyList = JSONObject.parseObject(requestBody).getString("keyList");
logger.info("[AutoSource] 从saleDetail表数据中直接下载报表,keyList="+keyList);
long beginTime = System.currentTimeMillis();
Map<String,String> params = new HashMap<>();
params.put("keyList", keyList);
// String result = HttpsSendData.send(statementApiUrl + "saledetail/getSaleDetailList",params);
String result = "{\"status\":200,\"msg\":\"查询成功\",\"data\":[{\"id\":\"00027727-2e16-485a-b1b3-f13d5079645a\",\"key\":\"df0286f1-eaac-11e7-adf4-a4badb3682ff_2018-10-25_2018-10-26\",\"createTime\":\"2018-12-21 09:41:41\",\"updateTime\":\"2018-12-21 09:41:41\",\"createOrderTime\":\"2018-10-24 16:24:26\",\"ticketTime\":\"2018-10-25 00:55:41\",\"outerOrderNo\":\"1380889117689\",\"channel\":\"Taobao\",\"store\":\"tbml\",\"tairLine\":\"HKT-DMK\",\"flightTime\":\"1544358000000\",\"flightNumber\":\"FD3028\",\"tripType\":\"单程\",\"pnrType\":\"去程\",\"pnr\":\"BWSTUZ\",\"passengerCount\":1,\"salePrice\":128,\"luggagePrice\":0,\"points\":0,\"purchaseCurrency\":\"CNY\",\"purchasePrice_local\":92,\"purchasePrice_rmb\":92,\"transactionDetail_local\":92,\"transactionDetail_rmb\":92,\"payMethod\":\"支付宝huochepiao3\",\"cardNumber\":\"支付宝huochepiao3\",\"profit\":36,\"transactionNumber\":\" \",\"orderValueAddedNo\":\" \",\"purchaseChannel\":\"艺龙\",\"purchaseAccount\":\"18513092060----huidarui\",\"purchaseOrderNo\":\"IT7JP5181024MO515179\",\"policyType\":\"普通促销\",\"policyCode\":\"TGJ泰国-中国\",\"orderStatus\":\"已出票\",\"operator\":\"曹坤祥\",\"purchaseTime\":\"2018-10-24 19:01:39\",\"orderValueAdded\":\" \",\"orderValueAddedSpecific\":\" \",\"remark\":\" \",\"officalReceivedPaymentStatus\":\" \",\"officalActualExpendAmount\":0,\"officalBalance\":0,\"officalRateAdjustDate\":null,\"passengerNames\":null,\"adultCount\":1,\"childCount\":0,\"sortIndex\":438}],\"info\":null}";
noteResult = JSONObject.parseObject(result, NoteResult.class);
if(noteResult.getStatus() != 200){
logger.error("[AutoSource] 从saleDetail表中查询报表数据失败,keyList="+keyList);
noteResult.setMsg("[AutoSource] 从saleDetail表中查询报表数据失败,key="+keyList);
noteResult.setStatus(300); // 获取失败状态值
return noteResult;
}
List<SaleDetail> saleDetails = JSONArray.parseArray(JSONArray.toJSONString(noteResult.getData()), SaleDetail.class);
Response response = new Response();
logger.info("[AutoSource] 获取数据库表数据,总用时:"+(System.currentTimeMillis()-beginTime)+"ms");
try{
// String customerId = keyList.substring(0,keyList.indexOf("_"));
String customerId = JSONObject.parseObject(requestBody).getString("customerId");
final String filePath = saleDetailReportExcelPath + customerId + "/SalesDetailReport/";//指定文件保存路径
String path = parseToSaleDetail.createSaleDetailReport(saleDetails,filePath);
noteResult.setStatus(Response.Status.SUCCEED.getStatus());
noteResult.setData(path);
noteResult.setMsg("[AutoSource] 生成报表成功,总用时:"+(System.currentTimeMillis()-beginTime)+"ms");
logger.info("[AutoSource] 生成销售明细报表,总用时:"+(System.currentTimeMillis()-beginTime)+"ms");
return noteResult;
}catch (Exception e){
logger.error("[AutoSource] 生成报表发生异常",e);
noteResult.setMsg("[AutoSource] 生成报表发生异常");
return noteResult;
}
}
//任务消息队列,元素 调用AirTicket工程刷新SaleDetail表数据 的参数Map<String,String> //任务消息队列,元素 调用AirTicket工程刷新SaleDetail表数据 的参数Map<String,String>
public static BlockingQueue<Map<String,String>> updateSaleDetailQueue = new LinkedBlockingDeque<>(); public static BlockingQueue<Map<String, String>> updateSaleDetailQueue = new LinkedBlockingDeque<>();
//提供入队列方法 //提供入队列方法
public static void setUpdateSaleDetailQueue(Map<String,String> paramsMap) { public static void setUpdateSaleDetailQueue(Map<String, String> paramsMap) {
try{ try {
updateSaleDetailQueue.put(paramsMap); updateSaleDetailQueue.put(paramsMap);
}catch (Exception e){ } catch (Exception e) {
logger.error("updateSaleDetailQueue 队列,入队列异常,参数:" + paramsMap); logger.error("updateSaleDetailQueue 队列,入队列异常,参数:" + paramsMap);
} }
} }
/** /**
* 采购信息更新时,更新报表数据,以队列方式执行 * 采购信息更新时,更新报表数据,以队列方式执行
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
public Response updateSaleDetail(String requestBody){ public Response updateSaleDetail(String requestBody) {
System.out.println(requestBody); System.out.println(requestBody);
if(StringUtils.isBlank(requestBody)){ if (StringUtils.isBlank(requestBody)) {
return Response.error("[updateSaleDetail] 参数不合法,requestBody=null"); return Response.error("[updateSaleDetail] 参数不合法,requestBody=null");
} }
JSONObject reqObj = JSONObject.parseObject(requestBody); JSONObject reqObj = JSONObject.parseObject(requestBody);
String customerId = reqObj.getString("customerId"); String customerId = reqObj.getString("customerId");
String startTime = reqObj.getString("startTime"); String startTime = reqObj.getString("startTime");
String endTime = reqObj.getString("endTime"); String endTime = reqObj.getString("endTime");
if(StringUtils.isBlank(customerId) || StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)){ if (StringUtils.isBlank(customerId) || StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)) {
return Response.error("[updateSaleDetail] 参数不合法"); return Response.error("[updateSaleDetail] 参数不合法");
} }
try{ try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date endDate = sdf.parse(endTime); Date endDate = sdf.parse(endTime);
if(endDate.getTime() > new Date().getTime()){ if (endDate.getTime() > new Date().getTime()) {
return Response.error("[updateSaleDetail] 当天订单采购信息修改不触发刷新报表数据,endTime="+endTime); return Response.error("[updateSaleDetail] 当天订单采购信息修改不触发刷新报表数据,endTime=" + endTime);
} }
Map<String,String> paramsMap = new HashMap<>(); Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("customerId",customerId); paramsMap.put("customerId", customerId);
paramsMap.put("startTime",startTime); paramsMap.put("startTime", startTime);
paramsMap.put("endTime",endTime); paramsMap.put("endTime", endTime);
setUpdateSaleDetailQueue(paramsMap);//入队列 setUpdateSaleDetailQueue(paramsMap);//入队列
logger.info("[updateSaleDetail] 采购信息变动,刷新报表数据任务已加入队列,参数:"+paramsMap); logger.info("[updateSaleDetail] 采购信息变动,刷新报表数据任务已加入队列,参数:" + paramsMap);
logger.info("[updateSaleDetail] 当前队列长度 updateSaleDetailQueue.size()="+updateSaleDetailQueue.size()); logger.info("[updateSaleDetail] 当前队列长度 updateSaleDetailQueue.size()=" + updateSaleDetailQueue.size());
return Response.success("[updateSaleDetail] 已加入队列"); return Response.success("[updateSaleDetail] 已加入队列");
}catch (Exception e){ } catch (Exception e) {
logger.error("updateSaleDetail 发生异常",e); logger.error("updateSaleDetail 发生异常", e);
} }
return Response.error("未知原因失败"); return Response.error("未知原因失败");
} }
...@@ -83,21 +227,21 @@ public class SaleDetailService implements CommandLineRunner { ...@@ -83,21 +227,21 @@ public class SaleDetailService implements CommandLineRunner {
} }
//消费响应消息队列 //消费响应消息队列
private void consumeUpdateSaleDetailQueue(){ private void consumeUpdateSaleDetailQueue() {
ExecutorService threadPool = Executors.newFixedThreadPool(1); ExecutorService threadPool = Executors.newFixedThreadPool(1);
Runnable consumeTask = new Runnable() { Runnable consumeTask = new Runnable() {
@Override @Override
public void run() { public void run() {
while (true){ while (true) {
logger.info("[updateSaleDetailQueue] 刷新报表队列 当前长度:"+updateSaleDetailQueue.size()); logger.info("[updateSaleDetailQueue] 刷新报表队列 当前长度:" + updateSaleDetailQueue.size());
Map<String,String> map = null; Map<String, String> map = null;
try { try {
//调用AirTicket工程刷新SaleDetail表数据 //调用AirTicket工程刷新SaleDetail表数据
map = updateSaleDetailQueue.take(); map = updateSaleDetailQueue.take();
HttpsSendData.send(overseasAirTicketUrl+"autoSaleDetai/updateSaleDetail.do",map); HttpsSendData.send(overseasAirTicketUrl + "autoSaleDetai/updateSaleDetail.do", map);
logger.info("刷新报表已执行,参数:"+map); logger.info("刷新报表已执行,参数:" + map);
}catch (Exception e) { } catch (Exception e) {
logger.error("刷新报表队列执行任务时异常,参数"+map); logger.error("刷新报表队列执行任务时异常,参数" + map);
} }
} }
} }
......
...@@ -6,8 +6,8 @@ spring: ...@@ -6,8 +6,8 @@ spring:
polestarLogsServicesUrl: 'http://127.0.0.1:8089/' polestarLogsServicesUrl: 'http://127.0.0.1:8089/'
dataApiUrl: 'http://127.0.0.1:38071/iffs-data-api/' dataApiUrl: 'http://127.0.0.1:38071/iffs-data-api/'
pathConfig: pathConfig:
saleReportExcelPath: 'F:/overseasCheetah_ExcelFile/' saleDetailReportExcelPath: 'D:\\polestar_ExcelFile/'
saleDetailReportExcelPath: 'F:\\overseasCheetah_ExcelFile/' saleReportExcelPath: 'D:/polestar_ExcelFile/'
server: server:
port: 8066 port: 8066
compression: compression:
......
...@@ -6,8 +6,8 @@ spring: ...@@ -6,8 +6,8 @@ spring:
polestarLogsServicesUrl: 'http://192.168.0.88:8055/' polestarLogsServicesUrl: 'http://192.168.0.88:8055/'
dataApiUrl: 'http://14.18.207.103:38071/iffs-data-api/' dataApiUrl: 'http://14.18.207.103:38071/iffs-data-api/'
pathConfig: pathConfig:
saleReportExcelPath: 'E:/overseasCheetah_ExcelFile/' saleDetailReportExcelPath: 'D:\\polestar_ExcelFile/'
saleDetailReportExcelPath: 'E:\\overseasCheetah_ExcelFile/' saleReportExcelPath: 'D:/polestar_ExcelFile/'
server: server:
port: 8333 port: 8333
compression: compression:
......
spring: spring:
urlConfig: urlConfig:
overseasCheetahUrl: 'http://127.0.0.1:18092/polestar/' overseasCheetahUrl: 'http://127.0.0.1:18092/polestar/'
overseasAirTicketUrl: 'http://127.0.0.1:18071/OverseasAirTicket/' # overseasAirTicketUrl: 'http://127.0.0.1:18071/OverseasAirTicket/'
overseasAirTicketUrl: 'http://192.168.11.158:8080/ordercenterApi/'
productServiceUrl: 'http://127.0.0.1:28071/20160907_InterfaceConnected/' productServiceUrl: 'http://127.0.0.1:28071/20160907_InterfaceConnected/'
polestarLogsServicesUrl: 'http://127.0.0.1:8089/' polestarLogsServicesUrl: 'http://127.0.0.1:8089/'
dataApiUrl: 'http://14.18.207.91:38071/iffs-data-api/' dataApiUrl: 'http://14.18.207.91:38071/iffs-data-api/'
statementApiUrl: 'http://192.168.11.158:8080/ordercenterApi/'
pathConfig: pathConfig:
saleDetailReportExcelPath: 'D:\\overseasCheetah_ExcelFile/' saleDetailReportExcelPath: 'D:\\polestar_ExcelFile/' # 销售明细报表导出保存的本地路径
saleReportExcelPath: 'D:/overseasCheetah_ExcelFile/' saleReportExcelPath: 'D:/polestar_ExcelFile/' #
server: server:
port: 8066 port: 8066
compression: compression:
......
报表服务备忘记录 polestar-statement-services 报表服务备忘记录 polestar-statement-services
...@@ -6,4 +6,73 @@ ...@@ -6,4 +6,73 @@
[INFO]2020-12-09 11:36:50[uploadSaleRules][上传销售规则,参数:{"customerId":"2cb3aa90-7530-11e9-b14b-c81f66ba6a47","filePath":"D:\\\\webService\\\\overseasCheetah_ExcelFile/2cb3aa90-7530-11e9-b14b-c81f66ba6a47/SalesRulesUpLoad/20201209\\1607483667248workpolicy.xlsx","operator":"%E7%8E%8B%E7%A6%B9"}] [INFO]2020-12-09 11:36:50[uploadSaleRules][上传销售规则,参数:{"customerId":"2cb3aa90-7530-11e9-b14b-c81f66ba6a47","filePath":"D:\\\\webService\\\\overseasCheetah_ExcelFile/2cb3aa90-7530-11e9-b14b-c81f66ba6a47/SalesRulesUpLoad/20201209\\1607483667248workpolicy.xlsx","operator":"%E7%8E%8B%E7%A6%B9"}]
2. 接口参数模板 2. 接口参数模板
D:\pc\Project\polestar\polestar-statement-services\.idea\httpRequests\http-requests-log.http D:\pc\Project\polestar\polestar-statement-services\.idea\httpRequests\http-requests-log.http
3. 3. 下载销售明细报表数据 ,参数
[INFO]2021-03-16 17:17:29[getSaleDetailReportData][开始获取数据,参数:{
"customerId": "2cb3aa90-7530-11e9-b14b-c81f66ba6a47",
"endTime_Tic": "2021-03-08 00:00:00",
"orderStatus": "4",
"requestId": "",
"startTime_Tic": "2021-03-07 00:00:00",
"tableName": "orderinfo,orderpassenger,orderflightinfo,orderpurchase,orderinsurance,ordervalueadded,transactiondetail,transactiondetail_old"
}]
{
    "status": 0,
    "msg": "查询成功",
    "data": [
        {
            "id": "00027727-2e16-485a-b1b3-f13d5079645a",
            "key": "df0286f1-eaac-11e7-adf4-a4badb3682ff_2018-10-25_2018-10-26",
            "createTime": "2018-12-21 09:41:41",
            "updateTime": "2018-12-21 09:41:41",
            "createOrderTime": "2018-10-24 16:24:26",
            "ticketTime": "2018-10-25 00:55:41",
            "outerOrderNo": "1380889117689",
            "channel": "Taobao",
            "store": "tbml",
            "tairLine": "HKT-DMK",
            "flightTime": "1544358000000",
            "flightNumber": "FD3028",
            "tripType": "单程",
            "pnrType": "去程",
            "pnr": "BWSTUZ",
            "passengerCount": 1,
            "salePrice": 128.0,
            "luggagePrice": 0.0,
            "points": 0,
            "purchaseCurrency": "CNY",
            "purchasePrice_local": 92.0,
            "purchasePrice_rmb": 92.0,
            "transactionDetail_local": 92.0,
            "transactionDetail_rmb": 92.0,
            "payMethod": "支付宝huochepiao3",
            "cardNumber": "支付宝huochepiao3",
            "profit": 36.0,
            "transactionNumber": " ",
            "orderValueAddedNo": " ",
            "purchaseChannel": "艺龙",
            "purchaseAccount": "18513092060----huidarui",
            "purchaseOrderNo": "IT7JP5181024MO515179",
            "policyType": "普通促销",
            "policyCode": "TGJ泰国-中国",
            "orderStatus": "已出票",
            "operator": "曹坤祥",
            "purchaseTime": "2018-10-24 19:01:39",
            "orderValueAdded": " ",
            "orderValueAddedSpecific": " ",
            "remark": " ",
            "officalReceivedPaymentStatus": " ",
            "officalActualExpendAmount": 0.0,
            "officalBalance": 0.0,
            "officalRateAdjustDate": null,
            "passengerNames": null,
            "adultCount": null,
            "childCount": null,
            "sortIndex": 438
        }
    ],
    "info": null
}
\ 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