Commit 5842a65c by luoh

查询油量分析数据

parent 45600b29
...@@ -2,43 +2,55 @@ ...@@ -2,43 +2,55 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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"> <mapper namespace="com.ejweb.modules.airport.dao.OilAnalysisDao">
<select id="getOilAnalysisData" resultType="com.ejweb.modules.airport.entity.OilAnalysisEntity"> <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.flight_no,
sta.ac_no, sta.ac_no,
sta.dispatcher_name, sta.dispatcher_name,
sta.total_oil, sta.total_oil,
sta.dep_iata_id,
sta.arr_iata_id,
sta.extra_oil_fuel_reason, sta.extra_oil_fuel_reason,
airArr.airport_name as arrAirPortName, airArr.airport_name as arrAirPortName,
airdep.airport_name as depAirPortName, airdep.airport_name as depAirPortName,
acType.flight_no as acTypeName acType.type_name as acTypeName
from foc_flight_dynamics_sta sta from foc_flight_dynamics_sta sta
left join foc_airports airArr on airArr.airport_iata = #{arrIata} left join foc_airports airArr on airArr.airport_iata = sta.arr_iata_id
left join foc_airports airdep on airArr.airport_iata = #{depIata} left join foc_airports airdep on airdep.airport_iata = sta.dep_iata_id
left join foc_ac_type acType on acType.flight_no = #{flightNo} left join foc_ac_type acType on acType.flight_no = sta.ac_no
where 1=1 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>
<if test="#{flightNo} !=null and #{flightNo} !=''"> <if test="flightNo!=null and flightNo!='' ">
and sta.flight_no = #{flightNo} and sta.flight_no = #{flightNo}
</if> </if>
<if test="#{dispatcher} !=null and #{dispatcher} !=''"> <if test="dispatcher!=null and dispatcher!=''">
and sta.dispatcher_name = #{dispatcher} and sta.dispatcher_name = #{dispatcher}
</if> </if>
<if test="#{dispatcher} !=null and sta.flight_no!=''"> <if test="minDepTime !=null and minDepTime!=''">
and sta.flight_no = #{dispatcher} 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>
<if test="#{mintotalOil} !=null and #{mintotalOil}!=''"> <if test="mintotalOil !=null and mintotalOil!=''">
and sta.total_oil >= #{mintotalOil} and substring_index(sta.total_oil, 'KGS',1) <![CDATA[>=]]> #{mintotalOil}
</if> </if>
<if test="#{maxtotalOil} !=null and #{maxtotalOil}!=''"> <if test="maxtotalOil !=null and maxtotalOil!=''">
and sta.total_oil <![CDATA[ >= ]]> #{maxtotalOil} and substring_index(sta.total_oil, 'KGS',1) <![CDATA[<]]> #{maxtotalOil}
</if> </if>
......
...@@ -3,10 +3,13 @@ package com.ejweb.modules.airport.api; ...@@ -3,10 +3,13 @@ package com.ejweb.modules.airport.api;
import com.ejweb.core.api.RequestBean; import com.ejweb.core.api.RequestBean;
import com.ejweb.core.api.ResponseBean; import com.ejweb.core.api.ResponseBean;
import com.ejweb.core.base.PageEntity;
import com.ejweb.core.conf.ErrorCode; import com.ejweb.core.conf.ErrorCode;
import com.ejweb.core.conf.GConstants; 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.bean.OilAnalysisBean;
import com.ejweb.modules.airport.dao.OilAnalysisDao; 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.entity.OilAnalysisEntity;
import com.ejweb.modules.airport.service.OilAnalysisService; import com.ejweb.modules.airport.service.OilAnalysisService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -14,6 +17,9 @@ import org.springframework.stereotype.Controller; ...@@ -14,6 +17,9 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Controller @Controller
...@@ -27,22 +33,50 @@ public class OilAnalysisController { ...@@ -27,22 +33,50 @@ public class OilAnalysisController {
@RequestMapping(value = "/oilAnalysis") @RequestMapping(value = "/oilAnalysis")
public ResponseBean getOilAnalysisData(RequestBean requestBean) public ResponseBean getOilAnalysisData(RequestBean requestBean)
{ {
//todo: 2、返回数据判空 3、机型链表查询 4、剩余油量数据分析 5、生成表格导出 //todo: 5、生成表格导出
PageEntity<OilAnalysisEntity> list = null;
ResponseBean responseBean = new ResponseBean(); ResponseBean responseBean = new ResponseBean();
OilAnalysisBean bean = requestBean.getObjectBean(OilAnalysisBean.class); OilAnalysisBean bean = requestBean.getObjectBean(OilAnalysisBean.class);
list = oilAnalysisService.getAnalysisData(bean);
List <OilAnalysisEntity> oilAnalysisEntity = oilAnalysisService.getAnalysisData(bean); if (list == null)// 查询结果为空
if (oilAnalysisEntity == null)
{ {
responseBean.setMessage("接口调用失败"); responseBean.setMessage(GConstants.EMPTY);
responseBean.setStatus(ErrorCode.STATUS_CODE_4001); responseBean.setStatus(ErrorCode.STATUS_CODE_2001);
return responseBean;
}else { }else {
responseBean.setData(oilAnalysisEntity); responseBean.setData(list);
responseBean.setMessage(GConstants.OK); responseBean.setMessage(GConstants.OK);
responseBean.setStatus(ErrorCode.STATUS_CODE_2000); responseBean.setStatus(ErrorCode.STATUS_CODE_2000);
} }
return responseBean; 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; package com.ejweb.modules.airport.bean;
import com.ejweb.core.base.GenericBean; 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 { ...@@ -25,9 +28,33 @@ public class OilAnalysisBean extends GenericBean {
//签派员d //签派员d
private String dispatcher; 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() { public String getMinDepTime() {
...@@ -48,19 +75,19 @@ public class OilAnalysisBean extends GenericBean { ...@@ -48,19 +75,19 @@ public class OilAnalysisBean extends GenericBean {
public Integer getMintotalOil() { public String getMintotalOil() {
return mintotalOil; return mintotalOil;
} }
public void setMintotalOil(Integer mintotalOil) { public void setMintotalOil(String mintotalOil) {
this.mintotalOil = mintotalOil; this.mintotalOil = mintotalOil;
} }
public Integer getMaxtotalOil() { public String getMaxtotalOil() {
return maxtotalOil; return maxtotalOil;
} }
public void setMaxtotalOil(Integer maxtotalOil) { public void setMaxtotalOil(String maxtotalOil) {
this.maxtotalOil = maxtotalOil; this.maxtotalOil = maxtotalOil;
} }
......
package com.ejweb.modules.airport.entity; package com.ejweb.modules.airport.entity;
import com.ejweb.core.base.BaseEntity; import com.ejweb.core.base.BaseEntity;
import com.ejweb.core.utils.excel.annotation.ExcelField;
/** /**
...@@ -11,7 +12,7 @@ import com.ejweb.core.base.BaseEntity; ...@@ -11,7 +12,7 @@ import com.ejweb.core.base.BaseEntity;
* @team suzhou * @team suzhou
* @time 2020年12月10日 * @time 2020年12月10日
*/ */
public class OilAnalysisEntity extends BaseEntity { public class OilAnalysisEntity {
private String std; // 计划起飞时间 private String std; // 计划起飞时间
private String flightNo; // 航班号 private String flightNo; // 航班号
...@@ -19,15 +20,28 @@ public class OilAnalysisEntity extends BaseEntity { ...@@ -19,15 +20,28 @@ public class OilAnalysisEntity extends BaseEntity {
private String depIataId; // 起飞机场三字码 private String depIataId; // 起飞机场三字码
private String arrIataId; // 落地机场三字码 private String arrIataId; // 落地机场三字码
private String dispatcherName; // 签派人 private String dispatcherName; // 签派人
private Integer totalOil; // 总油量 private String totalOil; // 总油量
private String extraOilFuelReason; // 额外油加注原因 private String extraOilFuelReason; // 额外油加注原因
private String extraOilFuelTakeoff; // 起飞额外油量 private String extraOilFuelTakeoff; // 起飞额外油量
private String extraOilFuelArrrr; // 到达额外油量 private String extraOilFuelArr; // 到达额外油量
private String extraOilFuelFlight; // 航路额外油量 private String extraOilFuelFlight; // 航路额外油量
private String extraOilFuelOther; // 起飞额外油量 private String extraOilFuelOther; // 起飞额外油量
private String depAirPortName; // 起飞机场中文名称 private String depAirPortName; // 起飞机场中文名称
private String arrAirPortName; // 落地机场中文名称 private String arrAirPortName; // 落地机场中文名称
private String acTypeName; // 机型 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() { public String getAcTypeName() {
return acTypeName; return acTypeName;
...@@ -85,11 +99,11 @@ public class OilAnalysisEntity extends BaseEntity { ...@@ -85,11 +99,11 @@ public class OilAnalysisEntity extends BaseEntity {
this.dispatcherName = dispatcherName; this.dispatcherName = dispatcherName;
} }
public Integer getTotalOil() { public String getTotalOil() {
return totalOil; return totalOil;
} }
public void setTotalOil(Integer totalOil) { public void setTotalOil(String totalOil) {
this.totalOil = totalOil; this.totalOil = totalOil;
} }
...@@ -109,12 +123,12 @@ public class OilAnalysisEntity extends BaseEntity { ...@@ -109,12 +123,12 @@ public class OilAnalysisEntity extends BaseEntity {
this.extraOilFuelTakeoff = extraOilFuelTakeoff; this.extraOilFuelTakeoff = extraOilFuelTakeoff;
} }
public String getExtraOilFuelArrrr() { public String getExtraOilFuelArr() {
return extraOilFuelArrrr; return extraOilFuelArr;
} }
public void setExtraOilFuelArrrr(String extraOilFuelArrrr) { public void setExtraOilFuelArr(String extraOilFuelArr) {
this.extraOilFuelArrrr = extraOilFuelArrrr; this.extraOilFuelArr = extraOilFuelArr;
} }
public String getExtraOilFuelFlight() { public String getExtraOilFuelFlight() {
......
...@@ -4,12 +4,14 @@ import com.ejweb.core.base.BaseService; ...@@ -4,12 +4,14 @@ import com.ejweb.core.base.BaseService;
import com.ejweb.modules.airport.bean.OilAnalysisBean; import com.ejweb.modules.airport.bean.OilAnalysisBean;
import com.ejweb.modules.airport.dao.OilAnalysisDao; import com.ejweb.modules.airport.dao.OilAnalysisDao;
import com.ejweb.modules.airport.entity.OilAnalysisEntity; import com.ejweb.modules.airport.entity.OilAnalysisEntity;
import com.ejweb.modules.airport.entity.StatisticalEntity;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult; import com.ejweb.core.base.PageEntity;
import org.springframework.validation.ObjectError; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;import java.util.Collections;
import java.util.List; import java.util.List;
@Service @Service
...@@ -18,10 +20,65 @@ public class OilAnalysisService extends BaseService<OilAnalysisDao> { ...@@ -18,10 +20,65 @@ public class OilAnalysisService extends BaseService<OilAnalysisDao> {
@Autowired @Autowired
protected OilAnalysisDao oilAnalysisDao; protected OilAnalysisDao oilAnalysisDao;
public List <OilAnalysisEntity> getAnalysisData (OilAnalysisBean bean) { public PageEntity <OilAnalysisEntity> getAnalysisData (OilAnalysisBean bean) {
List <OilAnalysisEntity> oilAnalysisEntity = oilAnalysisDao.getOilAnalysisData(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 :
}
}
}
}
return oilAnalysisEntity; 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;
}
} }
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