Commit 7e1470db by java-李谡

提交测试

parent c7557997
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="resource"/>
<classpathentry kind="src" path="lib"/>
<classpathentry kind="lib" path="lib/commons-codec-1.9.jar"/>
<classpathentry kind="lib" path="lib/commons-fileupload-1.2.2.jar"/>
<classpathentry kind="lib" path="lib/commons-io-2.0.1.jar"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.3.2.jar"/>
<classpathentry kind="lib" path="lib/commons-logging-1.2.jar"/>
<classpathentry kind="lib" path="lib/druid-1.0.16.jar"/>
<classpathentry kind="lib" path="lib/fastjson-1.2.7.jar"/>
<classpathentry kind="lib" path="lib/httpclient-4.5.2.jar"/>
<classpathentry kind="lib" path="lib/httpcore-4.4.4.jar"/>
<classpathentry kind="lib" path="lib/httpmime-4.5.2.jar"/>
<classpathentry kind="lib" path="lib/mysql-connector-java-5.1.38.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.17.jar"/>
<classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.7.13.jar"/>
<classpathentry kind="lib" path="lib/slf4j-log4j12-1.7.13.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_79"/>
<classpathentry kind="lib" path="lib/commons-dbutils-1.6.jar"/>
<classpathentry kind="lib" path="lib/commons-collections-3.2.1.jar"/>
<classpathentry kind="lib" path="lib/esdk_ec_native_professional_java.jar"/>
<classpathentry kind="lib" path="lib/gson-2.3.1.jar"/>
<classpathentry kind="lib" path="lib/ojdbc6.jar"/>
<classpathentry kind="lib" path="lib/jave-1.0.2.jar"/>
<classpathentry kind="lib" path="lib/msbase.jar"/>
<classpathentry kind="lib" path="lib/mssqlserver.jar"/>
<classpathentry kind="lib" path="lib/msutil.jar"/>
<classpathentry kind="lib" path="lib/sqljdbc4.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>foc-task-1.0</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
package com.foc.flightdynamics.service;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.lang3.StringUtils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.foc.conf.Constants;
......@@ -27,6 +13,13 @@ import com.foc.util.DBHandler;
import com.foc.util.DBHelper;
import com.foc.util.DateUtil;
import com.foc.util.IdWorker;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.lang3.StringUtils;
import java.sql.SQLException;
import java.util.*;
public class FlightDynamicsService {
......@@ -42,10 +35,11 @@ public class FlightDynamicsService {
e.printStackTrace();
}
}
public void finish(final Map<String, String> flightDates, final String modified){
public void finish(final Map<String, String> flightDates, final String modified) {
long startTime = System.nanoTime();
if(flightDates != null){
for(String flightDate:flightDates.keySet()){
if (flightDates != null) {
for (String flightDate : flightDates.keySet()) {
deleteLastDynamicsData(flightDate, modified);
}
......@@ -54,18 +48,19 @@ public class FlightDynamicsService {
long duration = endTime - startTime;
System.out.println("【FlightDynamicsService】【finish】处理时间:" + DateUtil.getDurationTime(duration));
}
public boolean deleteLastDynamicsData(final String flightDate, final String modified){
public boolean deleteLastDynamicsData(final String flightDate, final String modified) {
try {
if(StringUtils.isNotEmpty(flightDate)){
if (StringUtils.isNotEmpty(flightDate)) {
String insert = "INSERT INTO "+Constants.FOC_FLIGHT_DYNAMICS_HISTORY+" SELECT * FROM "+Constants.FOC_FLIGHT_DYNAMICS+" WHERE datop_chn=? AND modified !=?";
System.out.println(insert+"["+flightDate+","+modified+"]");
String insert = "INSERT INTO " + Constants.FOC_FLIGHT_DYNAMICS_HISTORY + " SELECT * FROM " + Constants.FOC_FLIGHT_DYNAMICS + " WHERE datop_chn=? AND modified !=?";
System.out.println(insert + "[" + flightDate + "," + modified + "]");
run.update(insert, flightDate, modified);
String sql = "DELETE FROM "+Constants.FOC_FLIGHT_DYNAMICS+" WHERE datop_chn=? AND modified !=?";
System.out.println(sql+"["+flightDate+","+modified+"]");
String sql = "DELETE FROM " + Constants.FOC_FLIGHT_DYNAMICS + " WHERE datop_chn=? AND modified !=?";
System.out.println(sql + "[" + flightDate + "," + modified + "]");
int count = run.update(sql, flightDate, modified);
if(count>0)
if (count > 0)
return true;
}
} catch (Exception e) {
......@@ -73,12 +68,14 @@ public class FlightDynamicsService {
}
return false;
}
public String getStringValue(Object object, String want){
if(object == null || StringUtils.isEmpty(String.valueOf(object)))
public String getStringValue(Object object, String want) {
if (object == null || StringUtils.isEmpty(String.valueOf(object)))
return want;
return String.valueOf(object);
}
public void insertFlightDynamicsData(JSONObject result, final String modified, boolean dailyFlag, Map<String, String> flightDates) {
// Date curDate = new Date();
// DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
......@@ -104,17 +101,17 @@ public class FlightDynamicsService {
// int index=0;
try {
int size = flightDynamicsBeans.size();
for (int index=0;index<size;index++) {
for (int index = 0; index < size; index++) {
// index++;
try {
FlightDynamicsBean flightDynamicsBean = flightDynamicsBeans.get(index);
System.out.print("【DYNAMIC】第【"+(index+1)+"/"+size+"】条【"+flightDynamicsBean.getFlightNo()+"】【"+flightDynamicsBean.getDatopChn()+"】【"+flightDynamicsBean.getStatus()+"】");
System.out.print("【DYNAMIC】第【" + (index + 1) + "/" + size + "】条【" + flightDynamicsBean.getFlightNo() + "】【" + flightDynamicsBean.getDatopChn() + "】【" + flightDynamicsBean.getStatus() + "】");
mergeFlightDynamics(flightDynamicsBean, dailyFlag, modified);
if(flightDates.get(flightDynamicsBean.getDatopChn()) == null){
if (flightDates.get(flightDynamicsBean.getDatopChn()) == null) {
flightDates.put(flightDynamicsBean.getDatopChn(), flightDynamicsBean.getDatopChn());
}
......@@ -132,40 +129,25 @@ public class FlightDynamicsService {
}
}
/**
* 同步数据到每日5点数据
* @param flightDynamicsBean
* @param dailyFlag
*/
// private void mergeFlightDailyDynamics(FlightDynamicsBean flightDynamicsBean, boolean dailyFlag) {
// // 是5点时间,有数据直接更新,没有数据直接插入
// if (existFlightDynamics(flightDynamicsBean.getFlightNo(),
// flightDynamicsBean.getDatop(), flightDynamicsBean.getDepStn(), flightDynamicsBean.getArrStn(), Constants.FOC_FLIGHT_DYNAMICS_DAILY)) {
// if (dailyFlag) {
// updateFlightDynamics(flightDynamicsBean, Constants.FOC_FLIGHT_DYNAMICS_DAILY);
// }
// } else {
// insertFlightDynamics(flightDynamicsBean, Constants.FOC_FLIGHT_DYNAMICS_DAILY);
// }
// }
private void mergeFlightDynamics(FlightDynamicsBean flightDynamicsBean, boolean dailyFlag, final String modified) {
// Map<MapType, FlightDynamicsEntity> flightDynamicsEntityMap = new HashMap<MapType, FlightDynamicsEntity>();
FlightDynamicsEntity flight = existFlightDynamics(flightDynamicsBean.getFlightNo(),
flightDynamicsBean.getDatopChn(), flightDynamicsBean.getDepStn(), flightDynamicsBean.getArrStn(), Constants.FOC_FLIGHT_DYNAMICS);
if (flight != null) {
String estStatus = this.getFlightEstStatus(flightDynamicsBean.getFlightNo(),
flightDynamicsBean.getDatopChn(), flightDynamicsBean.getDepStn(), flightDynamicsBean.getArrStn());
if(StringUtils.isNotBlank(flight.getStatus())){
if(!"CNL".equals(estStatus) && "CNL".equals(flightDynamicsBean.getStatus())){// 航班取消了
if(flight.getStatus().equals(flightDynamicsBean.getStatus()) == false){// 上一个航班状态为非CNL
if (StringUtils.isNotBlank(flight.getStatus())) {
// 航班取消了
if (!"CNL".equals(estStatus) && "CNL".equals(flightDynamicsBean.getStatus())) {
// 上一个航班状态为非CNL
if (flight.getStatus().equals(flightDynamicsBean.getStatus()) == false) {
List<FlightCrewListEntity> crewList = this.getFlightCrewList(flightDynamicsBean.getFlightNo(),
flightDynamicsBean.getDatopChn(), flightDynamicsBean.getDepStn(), flightDynamicsBean.getArrStn());
if(crewList != null){
if (crewList != null) {
Map<String, String> payload = new HashMap<String, String>();
payload.put("flightNo", flightDynamicsBean.getFlightNo());
......@@ -174,27 +156,30 @@ public class FlightDynamicsService {
payload.put("flightDate", flightDynamicsBean.getDatopChn());
payload.put("lastStatus", flight.getStatus());
for(FlightCrewListEntity crew:crewList){
for (FlightCrewListEntity crew : crewList) {
UserNotifyEntity notify1 = new UserNotifyEntity();
notify1.setId(IdWorker.getNextId());
notify1.setUserId(crew.getUserId());// 消息接受者用户ID(*必填)
notify1.setType("MS1003");// 消息类型(*必填)
notify1.setTitle(flightDynamicsBean.getFlightNo()+"("+flight.getDepCityName()+"-"+flight.getArrCityName()+")航班取消了,请小伙伴们关注!");// 提示标题(*必填)
// 消息接受者用户ID(*必填)
notify1.setUserId(crew.getUserId());
// 消息类型(*必填)
notify1.setType("MS1003");
// 提示标题(*必填)
notify1.setTitle(flightDynamicsBean.getFlightNo() + "(" + flight.getDepCityName() + "-" + flight.getArrCityName() + ")航班取消了,请小伙伴们关注!");
service.sendPush(notify1, payload);
String[] userList = GConstants.getValue("send.push.user.list", "").split(";");
for (String userId:userList) {
if(StringUtils.isNotEmpty(userId)){
for (String userId : userList) {
if (StringUtils.isNotEmpty(userId)) {
UserNotifyEntity notify2 = new UserNotifyEntity();
notify2.setId(IdWorker.getNextId());
notify2.setUserId(crew.getUserId());// 消息接受者用户ID(*必填)
notify2.setType("MS1003");// 消息类型(*必填)
notify2.setTitle(flightDynamicsBean.getFlightNo()+"("+flight.getDepCityName()+"-"+flight.getArrCityName()+")航班取消了,请小伙伴们关注!");// 提示标题(*必填)
// 消息接受者用户ID(*必填)
notify2.setUserId(crew.getUserId());
// 消息类型(*必填)
notify2.setType("MS1003");
// 提示标题(*必填)
notify2.setTitle(flightDynamicsBean.getFlightNo() + "(" + flight.getDepCityName() + "-" + flight.getArrCityName() + ")航班取消了,请小伙伴们关注!");
service.sendPush(notify2, payload);
}
}
......@@ -202,13 +187,15 @@ public class FlightDynamicsService {
}
}
}
if("DEL".equals(flightDynamicsBean.getStatus())){// 航班延误了
if(flight.getStatus().equals(flightDynamicsBean.getStatus()) == false){// 上一个航班状态为非DEL
// 航班延误了
if ("DEL".equals(flightDynamicsBean.getStatus())) {
// 上一个航班状态为非DEL
if (flight.getStatus().equals(flightDynamicsBean.getStatus()) == false) {
List<FlightCrewListEntity> crewList = this.getFlightCrewList(flightDynamicsBean.getFlightNo(),
flightDynamicsBean.getDatopChn(), flightDynamicsBean.getDepStn(), flightDynamicsBean.getArrStn());
if(crewList != null){
if (crewList != null) {
Map<String, String> payload = new HashMap<String, String>();
payload.put("flightNo", flightDynamicsBean.getFlightNo());
payload.put("depIata", flightDynamicsBean.getDepStn());
......@@ -216,27 +203,28 @@ public class FlightDynamicsService {
payload.put("flightDate", flightDynamicsBean.getDatopChn());
payload.put("lastStatus", flight.getStatus());
for(FlightCrewListEntity crew:crewList){
for (FlightCrewListEntity crew : crewList) {
UserNotifyEntity notify = new UserNotifyEntity();
notify.setId(IdWorker.getNextId());
notify.setUserId(crew.getUserId());// 消息接受者用户ID(*必填)
notify.setType("MS1004");// 消息类型(*必填)
notify.setTitle(flightDynamicsBean.getFlightNo()+"("+flight.getDepCityName()+"-"+flight.getArrCityName()+")航班延误了,请小伙伴们关注!");// 提示标题(*必填)
// 消息接受者用户ID(*必填)
notify.setUserId(crew.getUserId());
// 消息类型(*必填)
notify.setType("MS1004");
// 提示标题(*必填)
notify.setTitle(flightDynamicsBean.getFlightNo() + "(" + flight.getDepCityName() + "-" + flight.getArrCityName() + ")航班延误了,请小伙伴们关注!");
service.sendPush(notify, payload);
String[] userList = GConstants.getValue("send.push.user.list", "").split(";");
for (String userId:userList) {
if(StringUtils.isNotEmpty(userId)){
for (String userId : userList) {
if (StringUtils.isNotEmpty(userId)) {
notify = new UserNotifyEntity();
notify.setId(IdWorker.getNextId());
notify.setUserId(crew.getUserId());// 消息接受者用户ID(*必填)
notify.setType("MS1003");// 消息类型(*必填)
notify.setTitle(flightDynamicsBean.getFlightNo()+"("+flight.getDepCityName()+"-"+flight.getArrCityName()+")航班取消了,请小伙伴们关注!");// 提示标题(*必填)
// 消息接受者用户ID(*必填)
notify.setUserId(crew.getUserId());
// 消息类型(*必填)
notify.setType("MS1003");
// 提示标题(*必填)
notify.setTitle(flightDynamicsBean.getFlightNo() + "(" + flight.getDepCityName() + "-" + flight.getArrCityName() + ")航班取消了,请小伙伴们关注!");
service.sendPush(notify, payload);
}
}
......@@ -247,24 +235,22 @@ public class FlightDynamicsService {
}
System.out.print("【updateFlightDynamics】");
updateFlightDynamics(flightDynamicsBean, estStatus, modified, Constants.FOC_FLIGHT_DYNAMICS);
} else{
} else {
System.out.print("【insertFlightDynamics】");
insertFlightDynamics(flightDynamicsBean, modified, Constants.FOC_FLIGHT_DYNAMICS);
}
// String today = DateUtil.dateToStr(new Date(), DateUtil.DATE_FORMAT);
if (!dailyFlag) {
return;
}
Calendar calendar = new GregorianCalendar();
calendar.add(Calendar.DATE, 1);
String tomorrow = DateUtil.dateToStr(calendar.getTime(), DateUtil.DATE_FORMAT);
if(tomorrow.equals(flightDynamicsBean.getDatopChn())){// 如果是明天的航班则需要插入数据
// 如果是明天的航班则需要插入数据
if (tomorrow.equals(flightDynamicsBean.getDatopChn())) {
flight = existFlightDynamics(flightDynamicsBean.getFlightNo(),
flightDynamicsBean.getDatopChn(), flightDynamicsBean.getDepStn(), flightDynamicsBean.getArrStn(), Constants.FOC_EST_FLIGHT_DYNAMICS);
// 如果数据不存在则添加一条数据
if (flight == null) {
insertFlightDynamics(flightDynamicsBean, modified, Constants.FOC_EST_FLIGHT_DYNAMICS);
}
}
......@@ -280,10 +266,11 @@ public class FlightDynamicsService {
columnMap.put("update_time", getStringValue(flightDynamicsBean.getUpdateTime(), null));
columnMap.put("ata", getStringValue(flightDynamicsBean.getAta(), null));
columnMap.put("status", flightDynamicsBean.getStatus());
if(Constants.FOC_FLIGHT_DYNAMICS.equals(tableName)){// 实际航班添加计划航班状态
// 实际航班添加计划航班状态
if (Constants.FOC_FLIGHT_DYNAMICS.equals(tableName)) {
// 航班计划状态
columnMap.put("est_status", this.getFlightEstStatus(flightDynamicsBean.getFlightNo(),
flightDynamicsBean.getDatopChn(), flightDynamicsBean.getDepStn(), flightDynamicsBean.getArrStn()));// 航班计划状态
flightDynamicsBean.getDatopChn(), flightDynamicsBean.getDepStn(), flightDynamicsBean.getArrStn()));
}
columnMap.put("etd", getStringValue(flightDynamicsBean.getEtd(), null));
columnMap.put("arr_stn", flightDynamicsBean.getArrStn());
......@@ -301,21 +288,27 @@ public class FlightDynamicsService {
columnMap.put("is_stop_over", getStringValue(flightDynamicsBean.getIsStopOver(), null));
columnMap.put("eta_chn", getStringValue(flightDynamicsBean.getEtaChn(), null));
columnMap.put("atd", getStringValue(flightDynamicsBean.getAtd(), null));
columnMap.put("std", getStringValue(flightDynamicsBean.getStd(), null));//std 计划起飞时间
columnMap.put("sta", getStringValue(flightDynamicsBean.getSta(), null));//sta 计划到达时间
columnMap.put("std_chn", getStringValue(flightDynamicsBean.getStdChn(), null));//std_chn 计划起飞时间(北京时间)
columnMap.put("sta_chn", getStringValue(flightDynamicsBean.getStaChn(), null));//sta_chn 计划到达时间(北京时间)
//std 计划起飞时间
columnMap.put("std", getStringValue(flightDynamicsBean.getStd(), null));
//sta 计划到达时间
columnMap.put("sta", getStringValue(flightDynamicsBean.getSta(), null));
//std_chn 计划起飞时间(北京时间)
columnMap.put("std_chn", getStringValue(flightDynamicsBean.getStdChn(), null));
//sta_chn 计划到达时间(北京时间)
columnMap.put("sta_chn", getStringValue(flightDynamicsBean.getStaChn(), null));
columnMap.put("ac_type", getStringValue(flightDynamicsBean.getAcType(), ""));
columnMap.put("orig_ac_type", getStringValue(flightDynamicsBean.getOrigAcType(), ""));
columnMap.put("div_recode", getStringValue(flightDynamicsBean.getDivRecode(), ""));// 备降代码
columnMap.put("div_flag", getStringValue(flightDynamicsBean.getDivFlag(), ""));// 备降标识
columnMap.put("leg_no", getStringValue(flightDynamicsBean.getLegNo(), ""));// 航段编号 "legNo": "100" 数据150表示备降200表示经停
columnMap.put("delay1", getStringValue(flightDynamicsBean.getDelay1(), ""));// 第一次延误代码
columnMap.put("dur1", getStringValue(flightDynamicsBean.getDur1(), ""));// 第一次延误时间
// 备降代码
columnMap.put("div_recode", getStringValue(flightDynamicsBean.getDivRecode(), ""));
// 备降标识
columnMap.put("div_flag", getStringValue(flightDynamicsBean.getDivFlag(), ""));
// 航段编号 "legNo": "100" 数据150表示备降200表示经停
columnMap.put("leg_no", getStringValue(flightDynamicsBean.getLegNo(), ""));
// 第一次延误代码
columnMap.put("delay1", getStringValue(flightDynamicsBean.getDelay1(), ""));
// 第一次延误时间
columnMap.put("dur1", getStringValue(flightDynamicsBean.getDur1(), ""));
columnMap.put("modified", modified);
columnMap.put("stc", getStringValue(flightDynamicsBean.getStc(), ""));
......@@ -334,15 +327,15 @@ public class FlightDynamicsService {
/**
* 获取航班的计划状态
*
* @author renmb
* @time 2016年10月31日
* @param flightNo
* @param datopChn
* @param depStn
* @param arrStn
* @return
* @author renmb
* @time 2016年10月31日
*/
public String getFlightEstStatus(String flightNo,String datopChn,String depStn, String arrStn){
public String getFlightEstStatus(String flightNo, String datopChn, String depStn, String arrStn) {
ResultSetHandler<List<FlightDynamicsEntity>> handler = new BeanListHandler<FlightDynamicsEntity>(
FlightDynamicsEntity.class);
......@@ -353,7 +346,7 @@ public class FlightDynamicsService {
if (list != null && list.size() > 0) {
FlightDynamicsEntity flight = list.get(0);
if(StringUtils.isNotBlank(flight.getStatus()))
if (StringUtils.isNotBlank(flight.getStatus()))
return flight.getStatus();
}
} catch (SQLException e) {
......@@ -362,6 +355,7 @@ public class FlightDynamicsService {
}
return "";
}
private void updateFlightDynamics(FlightDynamicsBean flightDynamicsBean, String estStatus, final String modified, String tableName) {
DBHandler dBHandler = new DBHandler();
......@@ -374,7 +368,7 @@ public class FlightDynamicsService {
columnMap.put("update_time", getStringValue(flightDynamicsBean.getUpdateTime(), null));
columnMap.put("ata", getStringValue(flightDynamicsBean.getAta(), null));
columnMap.put("status", getStringValue(flightDynamicsBean.getStatus(), ""));
if(Constants.FOC_FLIGHT_DYNAMICS.equals(tableName)){// 实际航班添加计划航班状态
if (Constants.FOC_FLIGHT_DYNAMICS.equals(tableName)) {// 实际航班添加计划航班状态
columnMap.put("est_status", this.getFlightEstStatus(flightDynamicsBean.getFlightNo(),
flightDynamicsBean.getDatopChn(), flightDynamicsBean.getDepStn(), flightDynamicsBean.getArrStn()));// 航班计划状态
}
......@@ -440,7 +434,7 @@ public class FlightDynamicsService {
builder.append(" a.arr_stn, ");
builder.append(" c.airport_name AS arrAirportName, ");
builder.append(" c.city_name AS arrCityName ");
builder.append("FROM `"+tableName+"` a ");
builder.append("FROM `" + tableName + "` a ");
builder.append("LEFT JOIN `foc_airports` b ");
builder.append(" ON a.`dep_stn` = b.`airport_iata` ");
builder.append("LEFT JOIN `foc_airports` c ");
......@@ -466,25 +460,25 @@ public class FlightDynamicsService {
FlightCrewListEntity.class);
StringBuffer buf = new StringBuffer();
buf.append(" SELECT o.rank_sd AS rankSd, " );
buf.append(" o.staff_id AS userId, " );
buf.append(" o.staff_name AS username, " );
buf.append(" u.photo, " );
buf.append(" u.phone, " );
buf.append(" u.mobile " );
buf.append(" FROM foc_ods o " );
buf.append(" LEFT JOIN sys_user u " );
buf.append(" ON o.staff_id=u.id " );
buf.append(" LEFT JOIN sys_office c " );
buf.append(" ON c.id = u.company_id " );
buf.append(" LEFT JOIN sys_office f " );
buf.append(" ON f.id = u.office_id " );
buf.append(" LEFT JOIN sys_user_profiles p " );
buf.append(" ON o.staff_id=p.user_id " );
buf.append(" WHERE o.flight_no=? " );
buf.append(" AND o.flight_date=? " );
buf.append(" AND o.dep_stn=? " );
buf.append(" AND o.arr_stn=? " );
buf.append(" SELECT o.rank_sd AS rankSd, ");
buf.append(" o.staff_id AS userId, ");
buf.append(" o.staff_name AS username, ");
buf.append(" u.photo, ");
buf.append(" u.phone, ");
buf.append(" u.mobile ");
buf.append(" FROM foc_ods o ");
buf.append(" LEFT JOIN sys_user u ");
buf.append(" ON o.staff_id=u.id ");
buf.append(" LEFT JOIN sys_office c ");
buf.append(" ON c.id = u.company_id ");
buf.append(" LEFT JOIN sys_office f ");
buf.append(" ON f.id = u.office_id ");
buf.append(" LEFT JOIN sys_user_profiles p ");
buf.append(" ON o.staff_id=p.user_id ");
buf.append(" WHERE o.flight_no=? ");
buf.append(" AND o.flight_date=? ");
buf.append(" AND o.dep_stn=? ");
buf.append(" AND o.arr_stn=? ");
List<FlightCrewListEntity> list = null;
try {
......
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