Commit 5842a65c by luoh

查询油量分析数据

parent 45600b29
......@@ -2,43 +2,55 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ejweb.modules.airport.dao.OilAnalysisDao">
<select id="getOilAnalysisData" resultType="com.ejweb.modules.airport.entity.OilAnalysisEntity">
select sta.std,
select DATE_FORMAT(sta.std, '%Y-%m-%d %H:%i:%S')as std,
sta.flight_no,
sta.ac_no,
sta.dispatcher_name,
sta.total_oil,
sta.dep_iata_id,
sta.arr_iata_id,
sta.extra_oil_fuel_reason,
airArr.airport_name as arrAirPortName,
airdep.airport_name as depAirPortName,
acType.flight_no as acTypeName
acType.type_name as acTypeName
from foc_flight_dynamics_sta sta
left join foc_airports airArr on airArr.airport_iata = #{arrIata}
left join foc_airports airdep on airArr.airport_iata = #{depIata}
left join foc_ac_type acType on acType.flight_no = #{flightNo}
left join foc_airports airArr on airArr.airport_iata = sta.arr_iata_id
left join foc_airports airdep on airdep.airport_iata = sta.dep_iata_id
left join foc_ac_type acType on acType.flight_no = sta.ac_no
where 1=1
<if test="#{std} !=null and #{std} !=''">
and sta.std = #{std}
<if test="arrIata!=null and arrIata!='' ">
and sta.arr_iata_id = #{arrIata}
</if>
<if test="depIata!=null and depIata!='' ">
and sta.dep_iata_id = #{depIata}
</if>
<if test="#{flightNo} !=null and #{flightNo} !=''">
<if test="flightNo!=null and flightNo!='' ">
and sta.flight_no = #{flightNo}
</if>
<if test="#{dispatcher} !=null and #{dispatcher} !=''">
<if test="dispatcher!=null and dispatcher!=''">
and sta.dispatcher_name = #{dispatcher}
</if>
<if test="#{dispatcher} !=null and sta.flight_no!=''">
and sta.flight_no = #{dispatcher}
<if test="minDepTime !=null and minDepTime!=''">
and sta.std <![CDATA[>=]]> date_format(#{minDepTime},'%Y-%c-%d %H:%i:%s')
</if>
<if test="maxDepTime !=null and maxDepTime!=''">
and sta.std <![CDATA[<]]> date_format(#{maxDepTime},'%Y-%c-%d %H:%i:%s')
</if>
<if test="#{mintotalOil} !=null and #{mintotalOil}!=''">
and sta.total_oil >= #{mintotalOil}
<if test="mintotalOil !=null and mintotalOil!=''">
and substring_index(sta.total_oil, 'KGS',1) <![CDATA[>=]]> #{mintotalOil}
</if>
<if test="#{maxtotalOil} !=null and #{maxtotalOil}!=''">
and sta.total_oil <![CDATA[ >= ]]> #{maxtotalOil}
<if test="maxtotalOil !=null and maxtotalOil!=''">
and substring_index(sta.total_oil, 'KGS',1) <![CDATA[<]]> #{maxtotalOil}
</if>
......
......@@ -3,10 +3,13 @@ package com.ejweb.modules.airport.api;
import com.ejweb.core.api.RequestBean;
import com.ejweb.core.api.ResponseBean;
import com.ejweb.core.base.PageEntity;
import com.ejweb.core.conf.ErrorCode;
import com.ejweb.core.conf.GConstants;
import com.ejweb.core.utils.excel.ExportExcel;
import com.ejweb.modules.airport.bean.OilAnalysisBean;
import com.ejweb.modules.airport.dao.OilAnalysisDao;
import com.ejweb.modules.airport.entity.AirportListEntity;
import com.ejweb.modules.airport.entity.OilAnalysisEntity;
import com.ejweb.modules.airport.service.OilAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -14,6 +17,9 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Controller
......@@ -27,22 +33,50 @@ public class OilAnalysisController {
@RequestMapping(value = "/oilAnalysis")
public ResponseBean getOilAnalysisData(RequestBean requestBean)
{
//todo: 2、返回数据判空 3、机型链表查询 4、剩余油量数据分析 5、生成表格导出
//todo: 5、生成表格导出
PageEntity<OilAnalysisEntity> list = null;
ResponseBean responseBean = new ResponseBean();
OilAnalysisBean bean = requestBean.getObjectBean(OilAnalysisBean.class);
list = oilAnalysisService.getAnalysisData(bean);
List <OilAnalysisEntity> oilAnalysisEntity = oilAnalysisService.getAnalysisData(bean);
if (oilAnalysisEntity == null)
if (list == null)// 查询结果为空
{
responseBean.setMessage("接口调用失败");
responseBean.setStatus(ErrorCode.STATUS_CODE_4001);
responseBean.setMessage(GConstants.EMPTY);
responseBean.setStatus(ErrorCode.STATUS_CODE_2001);
return responseBean;
}else {
responseBean.setData(oilAnalysisEntity);
responseBean.setData(list);
responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
}
return responseBean;
}
@RequestMapping(value = "/oilAnalysisExport")
public ResponseBean newExport(RequestBean requestBean, HttpServletResponse response) {
ResponseBean responseBean = new ResponseBean();
OilAnalysisBean bean = requestBean.getObjectBean(OilAnalysisBean.class);
PageEntity<OilAnalysisEntity> page = oilAnalysisService.getAnalysisData(bean);
List<OilAnalysisEntity> list = new ArrayList<OilAnalysisEntity>();
if (page != null)
{
list = page.getList();
//自定义导出序号
int no = 1;
String fileName = "油量分析统计.xlsx";
try {
new ExportExcel("油量分析统计", OilAnalysisEntity.class).setDataList(list).write(response, fileName).dispose();
} catch (IOException e) {
responseBean.setMessage("导出数据失败" + e.getMessage());
return responseBean;
}
}
return responseBean;
}
}
package com.ejweb.modules.airport.bean;
import com.ejweb.core.base.GenericBean;
import com.ejweb.core.conf.GConstants;
import javax.validation.constraints.Min;
/**
* 油量分析
......@@ -25,9 +28,33 @@ public class OilAnalysisBean extends GenericBean {
//签派员d
private String dispatcher;
//最低总油量
private Integer mintotalOil;
private String mintotalOil;
//最高总油量
private Integer maxtotalOil;
private String maxtotalOil;
@Min(value=1, message="pageNo必须大于等于1")
private int pageNo=1;//第几页
@Min(value=1, message="pageSize必须大于等于1")
private int pageSize= GConstants.PAGE_SIZE;//每页条数
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String getMinDepTime() {
......@@ -48,19 +75,19 @@ public class OilAnalysisBean extends GenericBean {
public Integer getMintotalOil() {
public String getMintotalOil() {
return mintotalOil;
}
public void setMintotalOil(Integer mintotalOil) {
public void setMintotalOil(String mintotalOil) {
this.mintotalOil = mintotalOil;
}
public Integer getMaxtotalOil() {
public String getMaxtotalOil() {
return maxtotalOil;
}
public void setMaxtotalOil(Integer maxtotalOil) {
public void setMaxtotalOil(String maxtotalOil) {
this.maxtotalOil = maxtotalOil;
}
......
package com.ejweb.modules.airport.entity;
import com.ejweb.core.base.BaseEntity;
import com.ejweb.core.utils.excel.annotation.ExcelField;
/**
......@@ -11,7 +12,7 @@ import com.ejweb.core.base.BaseEntity;
* @team suzhou
* @time 2020年12月10日
*/
public class OilAnalysisEntity extends BaseEntity {
public class OilAnalysisEntity {
private String std; // 计划起飞时间
private String flightNo; // 航班号
......@@ -19,15 +20,28 @@ public class OilAnalysisEntity extends BaseEntity {
private String depIataId; // 起飞机场三字码
private String arrIataId; // 落地机场三字码
private String dispatcherName; // 签派人
private Integer totalOil; // 总油量
private String totalOil; // 总油量
private String extraOilFuelReason; // 额外油加注原因
private String extraOilFuelTakeoff; // 起飞额外油量
private String extraOilFuelArrrr; // 到达额外油量
private String extraOilFuelArr; // 到达额外油量
private String extraOilFuelFlight; // 航路额外油量
private String extraOilFuelOther; // 起飞额外油量
private String depAirPortName; // 起飞机场中文名称
private String arrAirPortName; // 落地机场中文名称
private String acTypeName; // 机型
@ExcelField(title="序号", type=0, align=1, sort=19 )
private int no;
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getAcTypeName() {
return acTypeName;
......@@ -85,11 +99,11 @@ public class OilAnalysisEntity extends BaseEntity {
this.dispatcherName = dispatcherName;
}
public Integer getTotalOil() {
public String getTotalOil() {
return totalOil;
}
public void setTotalOil(Integer totalOil) {
public void setTotalOil(String totalOil) {
this.totalOil = totalOil;
}
......@@ -109,12 +123,12 @@ public class OilAnalysisEntity extends BaseEntity {
this.extraOilFuelTakeoff = extraOilFuelTakeoff;
}
public String getExtraOilFuelArrrr() {
return extraOilFuelArrrr;
public String getExtraOilFuelArr() {
return extraOilFuelArr;
}
public void setExtraOilFuelArrrr(String extraOilFuelArrrr) {
this.extraOilFuelArrrr = extraOilFuelArrrr;
public void setExtraOilFuelArr(String extraOilFuelArr) {
this.extraOilFuelArr = extraOilFuelArr;
}
public String getExtraOilFuelFlight() {
......
......@@ -4,12 +4,14 @@ import com.ejweb.core.base.BaseService;
import com.ejweb.modules.airport.bean.OilAnalysisBean;
import com.ejweb.modules.airport.dao.OilAnalysisDao;
import com.ejweb.modules.airport.entity.OilAnalysisEntity;
import com.ejweb.modules.airport.entity.StatisticalEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.util.StringUtils;
import com.ejweb.core.base.PageEntity;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;import java.util.Collections;
import java.util.List;
@Service
......@@ -18,10 +20,65 @@ public class OilAnalysisService extends BaseService<OilAnalysisDao> {
@Autowired
protected OilAnalysisDao oilAnalysisDao;
public List <OilAnalysisEntity> getAnalysisData (OilAnalysisBean bean) {
List <OilAnalysisEntity> oilAnalysisEntity = oilAnalysisDao.getOilAnalysisData(bean);
//拆分原因数据
public PageEntity <OilAnalysisEntity> getAnalysisData (OilAnalysisBean bean) {
PageHelper.startPage(bean.getPageNo(), bean.getPageSize());
PageInfo<OilAnalysisEntity> pageInfo = null;
List <OilAnalysisEntity> oilAnalysisEntityList = oilAnalysisDao.getOilAnalysisData(bean);
for (OilAnalysisEntity oilAnalysisEntity : oilAnalysisEntityList)
{
String oilFuelReason = oilAnalysisEntity.getExtraOilFuelReason();
if (!StringUtils.isEmpty(oilFuelReason))
{
String[] arr = oilFuelReason.split("\\|");
for (int i = 0;i < arr.length;i++)
{
String arrTemp = arr[i];
String[] reasonArr = arrTemp.split(":");
String oilNum = reasonArr.length==0 ? "":reasonArr[0] ;
switch (i){
case 0 :
//起飞油量及原因
oilAnalysisEntity.setExtraOilFuelTakeoff(oilNum);
break;
case 1 :
//到达额外油量及原因
oilAnalysisEntity.setExtraOilFuelArr(oilNum);
break;
case 2 :
//航路额外油量及原因
oilAnalysisEntity.setExtraOilFuelFlight(oilNum);
break;
case 3 :
//其他额外油量及原因
oilAnalysisEntity.setExtraOilFuelOther(oilNum);
break;
default :
}
}
}
}
if (oilAnalysisEntityList == null || oilAnalysisEntityList.size() == 0) {
return null;
}
pageInfo = new PageInfo<OilAnalysisEntity>(oilAnalysisEntityList);
if (pageInfo.getPages() < bean.getPageNo()) {// 页码大于总页数,则返回NULL
return null;
}
PageEntity<OilAnalysisEntity> page = new PageEntity<OilAnalysisEntity>();
page.setPageNo(pageInfo.getPageNum());
page.setPageSize(pageInfo.getPageSize());
page.setCount(pageInfo.getTotal());
page.setTotalPage(pageInfo.getPages());
page.setList(pageInfo.getList());
return page;
return oilAnalysisEntity;
}
}
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