Commit 8b6a0247172874bc3fdec7824b83a9c3607e58fe

Authored by 廖磊
2 parents 68d046b3 9c26c95a

Merge branch 'minhang' of

http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
src/main/java/com/bsth/controller/oil/YlbController.java
@@ -209,8 +209,8 @@ public class YlbController extends BaseController<Ylb, Integer>{ @@ -209,8 +209,8 @@ public class YlbController extends BaseController<Ylb, Integer>{
209 return maps; 209 return maps;
210 } 210 }
211 @RequestMapping(value="/oilListMonth") 211 @RequestMapping(value="/oilListMonth")
212 - public List<Ylb> oilListMonth(@RequestParam String line,@RequestParam String date){  
213 - return yblService.oilListMonth(line, date); 212 + public List<Ylb> oilListMonth(@RequestParam String line,@RequestParam String date,@RequestParam String type){
  213 + return yblService.oilListMonth(line, date, type);
214 } 214 }
215 215
216 @RequestMapping(value = "/checkJsy",method = RequestMethod.GET) 216 @RequestMapping(value = "/checkJsy",method = RequestMethod.GET)
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
1 package com.bsth.service.forms.impl; 1 package com.bsth.service.forms.impl;
2 2
  3 +import java.math.BigDecimal;
3 import java.sql.ResultSet; 4 import java.sql.ResultSet;
4 import java.sql.SQLException; 5 import java.sql.SQLException;
5 import java.text.DecimalFormat; 6 import java.text.DecimalFormat;
@@ -151,6 +152,40 @@ public class FormsServiceImpl implements FormsService { @@ -151,6 +152,40 @@ public class FormsServiceImpl implements FormsService {
151 w.setSh(String.valueOf(sh)); 152 w.setSh(String.valueOf(sh));
152 153
153 } 154 }
  155 +
  156 + Waybillday way = new Waybillday();
  157 + way.setNbbm("汇总合计");
  158 + BigDecimal ksgl = new BigDecimal("0.0");
  159 + BigDecimal jzl_ = new BigDecimal("0.0");
  160 + BigDecimal sh_ = new BigDecimal("0.0");
  161 + BigDecimal lc_ = new BigDecimal("0.0");
  162 + BigDecimal yh_ = new BigDecimal("0.0");
  163 + for(Waybillday w : list){
  164 + if(w.getJzl1() != null && w.getJzl1().trim().length() != 0){
  165 + ksgl = ksgl.add(new BigDecimal(w.getJzl1().trim()));
  166 + }
  167 + if(w.getJzl() != null && w.getJzl().trim().length() != 0){
  168 + jzl_ = jzl_.add(new BigDecimal(w.getJzl().trim()));
  169 + }
  170 + if(w.getSh() != null && w.getSh().trim().length() != 0){
  171 + sh_ = sh_.add(new BigDecimal(w.getSh().trim()));
  172 + }
  173 + if(w.getZlc() != null && w.getZlc().trim().length() != 0){
  174 + lc_ = lc_.add(new BigDecimal(w.getZlc().trim()));
  175 + }
  176 + if(w.getYh() != null && w.getYh().trim().length() != 0){
  177 + yh_ = yh_.add(new BigDecimal(w.getYh().trim()));
  178 + }
  179 + }
  180 + way.setJzl1(ksgl.toString());
  181 + way.setJzl(jzl_.toString());
  182 + way.setjName("");
  183 + way.setSh(sh_.toString());
  184 + way.setZlc(lc_.toString());
  185 + way.setYh(yh_.toString());
  186 + if(list.size() > 0)
  187 + list.add(way);
  188 +
154 return list; 189 return list;
155 } 190 }
156 191
@@ -315,6 +350,34 @@ public class FormsServiceImpl implements FormsService { @@ -315,6 +350,34 @@ public class FormsServiceImpl implements FormsService {
315 350
316 } 351 }
317 352
  353 + Shiftuehiclemanth shif = new Shiftuehiclemanth();
  354 + shif.setjName("汇总合计");
  355 + BigDecimal yylc = new BigDecimal("0.0");
  356 + BigDecimal kslc = new BigDecimal("0.0");
  357 + BigDecimal cjlc = new BigDecimal("0.0");
  358 + BigDecimal zjlc = new BigDecimal("0.0");
  359 + BigDecimal zlc = new BigDecimal("0.0");
  360 + int cjbc = 0, zjbc = 0, sjbc = 0;
  361 + for(Shiftuehiclemanth s : list){
  362 + yylc = yylc.add(new BigDecimal(s.getJhlc()));
  363 + kslc = kslc.add(new BigDecimal(s.getEmptMileage()));
  364 + cjlc = cjlc.add(new BigDecimal(s.getRemMileage()));
  365 + zjlc = zjlc.add(new BigDecimal(s.getAddMileage()));
  366 + zlc = zlc.add(new BigDecimal(s.getTotalm()));
  367 + cjbc += Integer.valueOf(s.getCjbc());
  368 + zjbc += Integer.valueOf(s.getLjbc());
  369 + sjbc += Integer.valueOf(s.getSjbc());
  370 + }
  371 + shif.setJhlc(yylc.toString());
  372 + shif.setEmptMileage(kslc.toString());
  373 + shif.setRemMileage(cjlc.toString());
  374 + shif.setAddMileage(zjlc.toString());
  375 + shif.setTotalm(zlc.toString());
  376 + shif.setCjbc("" + cjbc);
  377 + shif.setLjbc("" + zjbc);
  378 + shif.setSjbc("" + sjbc);
  379 + if(list.size() > 0)
  380 + list.add(shif);
318 381
319 return list; 382 return list;
320 } 383 }
@@ -403,7 +466,47 @@ public class FormsServiceImpl implements FormsService { @@ -403,7 +466,47 @@ public class FormsServiceImpl implements FormsService {
403 d.setLjbc(String.valueOf(ljbc));//增加班次 466 d.setLjbc(String.valueOf(ljbc));//增加班次
404 d.setAddMileage(String.valueOf(zjgl));//增加公里 467 d.setAddMileage(String.valueOf(zjgl));//增加公里
405 d.setSjjhbc(String.valueOf(sjbc));//实际计划班次 468 d.setSjjhbc(String.valueOf(sjbc));//实际计划班次
406 - } 469 + }
  470 +
  471 + Shifday shif = new Shifday();
  472 + shif.setjName("汇总合计");
  473 + BigDecimal jhlc = new BigDecimal("0.0");
  474 + BigDecimal sjlc = new BigDecimal("0.0");
  475 + BigDecimal yylc = new BigDecimal("0.0");
  476 + BigDecimal kslc = new BigDecimal("0.0");
  477 + BigDecimal cjlc = new BigDecimal("0.0");
  478 + BigDecimal zjlc = new BigDecimal("0.0");
  479 + BigDecimal zlc = new BigDecimal("0.0");
  480 + int jhbc = 0, sjjhbc = 0, cjbc = 0, zjbc = 0, sjbc = 0;
  481 + for(Shifday s : list){
  482 + jhlc = jhlc.add(new BigDecimal(s.getJhlc()));
  483 + sjlc = sjlc.add(new BigDecimal(s.getSjjhlc()));
  484 + yylc = yylc.add(new BigDecimal(s.getYygl()));
  485 + kslc = kslc.add(new BigDecimal(s.getEmptMileage()));
  486 + cjlc = cjlc.add(new BigDecimal(s.getRemMileage()));
  487 + zjlc = zjlc.add(new BigDecimal(s.getAddMileage()));
  488 + zlc = zlc.add(new BigDecimal(s.getTotalm()));
  489 + jhbc += Integer.valueOf(s.getJhbc());
  490 + sjjhbc += Integer.valueOf(s.getSjjhbc());
  491 + cjbc += Integer.valueOf(s.getCjbc());
  492 + zjbc += Integer.valueOf(s.getLjbc());
  493 + sjbc += Integer.valueOf(s.getSjbc());
  494 + }
  495 + shif.setJhlc(jhlc.toString());
  496 + shif.setSjjhlc(sjlc.toString());
  497 + shif.setYygl(yylc.toString());
  498 + shif.setEmptMileage(kslc.toString());
  499 + shif.setRemMileage(cjlc.toString());
  500 + shif.setAddMileage(zjlc.toString());
  501 + shif.setTotalm(zlc.toString());
  502 + shif.setJhbc("" + jhbc);
  503 + shif.setSjjhbc("" + sjjhbc);
  504 + shif.setCjbc("" + cjbc);
  505 + shif.setLjbc("" + zjbc);
  506 + shif.setSjbc("" + sjbc);
  507 + if(list.size() > 0)
  508 + list.add(shif);
  509 +
407 return list; 510 return list;
408 } 511 }
409 512
src/main/java/com/bsth/service/oil/YlbService.java
@@ -19,7 +19,7 @@ public interface YlbService extends BaseService&lt;Ylb, Integer&gt;{ @@ -19,7 +19,7 @@ public interface YlbService extends BaseService&lt;Ylb, Integer&gt;{
19 19
20 Map<String, Object> sumYlb(Map<String, Object> map); 20 Map<String, Object> sumYlb(Map<String, Object> map);
21 String checkJsy(Map<String, Object> map); 21 String checkJsy(Map<String, Object> map);
22 - List<Ylb> oilListMonth(String line,String date); 22 + List<Ylb> oilListMonth(String line,String date,String type);
23 List<Ylb> listYlb(Map<String, Object> map); 23 List<Ylb> listYlb(Map<String, Object> map);
24 StringBuffer checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int lx); 24 StringBuffer checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int lx);
25 25
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
@@ -45,6 +45,7 @@ import com.bsth.service.oil.YlbService; @@ -45,6 +45,7 @@ import com.bsth.service.oil.YlbService;
45 import com.bsth.service.realcontrol.ScheduleRealInfoService; 45 import com.bsth.service.realcontrol.ScheduleRealInfoService;
46 import com.bsth.util.Arith; 46 import com.bsth.util.Arith;
47 import com.bsth.util.BatchSaveUtils; 47 import com.bsth.util.BatchSaveUtils;
  48 +import com.bsth.util.ReportUtils;
48 import com.github.abel533.echarts.code.Y; 49 import com.github.abel533.echarts.code.Y;
49 50
50 @Service 51 @Service
@@ -949,7 +950,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -949,7 +950,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
949 950
950 951
951 @Override 952 @Override
952 - public List<Ylb> oilListMonth(String line, String date) { 953 + public List<Ylb> oilListMonth(String line, String date, String type) {
953 String date2=date.substring(0, 8)+"01"; 954 String date2=date.substring(0, 8)+"01";
954 String lineStr=""; 955 String lineStr="";
955 if(line !=null && !line.equals("")){ 956 if(line !=null && !line.equals("")){
@@ -979,6 +980,34 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -979,6 +980,34 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
979 return s; 980 return s;
980 } 981 }
981 }); 982 });
  983 +
  984 + if(type != null && type.equals("export")){
  985 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  986 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  987 +
  988 + List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
  989 + for(Ylb ylb : list){
  990 + Map<String, Object> m = new HashMap<String, Object>();
  991 + m.put("nbbm", ylb.getNbbm()!=null?ylb.getNbbm():"");
  992 + m.put("rq", ylb.getRq()!=null?sdfMonth.format(ylb.getRq()):"");
  993 + m.put("jzyl", ylb.getJzyl()!=null?ylb.getJzyl():"");
  994 + mapList.add(m);
  995 + }
  996 +
  997 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  998 + Map<String, Object> m = new HashMap<String, Object>();
  999 + ReportUtils ee = new ReportUtils();
  1000 + try {
  1001 + listI.add(mapList.iterator());
  1002 + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
  1003 + ee.excelReplace(listI, new Object[] { m }, path+"mould/oilListMonth.xls",
  1004 + path+"export/月存油报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls");
  1005 + } catch (Exception e) {
  1006 + // TODO: handle exception
  1007 + e.printStackTrace();
  1008 + }
  1009 + }
  1010 +
982 return list; 1011 return list;
983 } 1012 }
984 1013
src/main/java/com/bsth/service/schedule/impl/PeopleCarPlanServiceImpl.java
@@ -516,6 +516,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -516,6 +516,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
516 String endDate = map.get("endDate").toString(); 516 String endDate = map.get("endDate").toString();
517 String model = map.get("model").toString(); 517 String model = map.get("model").toString();
518 String type = map.get("type").toString(); 518 String type = map.get("type").toString();
  519 + String bcType = map.get("bcType").toString();
519 520
520 if(startDate.length() == 0){ 521 if(startDate.length() == 0){
521 startDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); 522 startDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
@@ -533,7 +534,11 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -533,7 +534,11 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
533 sql += " and gs_bm like '%"+company+"%' and fgs_bm like '%"+subCompany+"%'"; 534 sql += " and gs_bm like '%"+company+"%' and fgs_bm like '%"+subCompany+"%'";
534 // } 535 // }
535 sql += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; 536 sql += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'";
536 - 537 + if(Integer.valueOf(bcType) == 1){
  538 + sql += " and bc_type != 'region'";
  539 + } else if(Integer.valueOf(bcType) == 2){
  540 + sql += " and bc_type = 'region'";
  541 + }
537 list = jdbcTemplate.query(sql, 542 list = jdbcTemplate.query(sql,
538 new RowMapper<ScheduleRealInfo>(){ 543 new RowMapper<ScheduleRealInfo>(){
539 @Override 544 @Override
@@ -1180,8 +1185,11 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1180,8 +1185,11 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1180 1185
1181 @Override 1186 @Override
1182 public List<Map<String, Object>> firstAndLastBus(Map<String, Object> map) { 1187 public List<Map<String, Object>> firstAndLastBus(Map<String, Object> map) {
  1188 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  1189 + NumberFormat nf = NumberFormat.getNumberInstance();
  1190 + nf.setMinimumFractionDigits(2);
  1191 + List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>();
1183 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); 1192 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
1184 - Map<String, List<ScheduleRealInfo>> keyMap = new HashMap<String, List<ScheduleRealInfo>>();  
1185 1193
1186 String company = map.get("company").toString(); 1194 String company = map.get("company").toString();
1187 String subCompany = map.get("subCompany").toString(); 1195 String subCompany = map.get("subCompany").toString();
@@ -1190,151 +1198,173 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1190,151 +1198,173 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1190 String type = map.get("type").toString(); 1198 String type = map.get("type").toString();
1191 1199
1192 if(date.length() == 0) 1200 if(date.length() == 0)
1193 - date = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); 1201 + date = sdf.format(new Date());
1194 1202
1195 - List<ScheduleRealInfo> list = this.getSchedule(company, subCompany, line, date); 1203 + try {
  1204 + String sql = "select a.schedule_date_Str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name,"
  1205 + + " b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line"
  1206 + + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') = '"+date+"'"
  1207 + + " and fcsj_actual is not null and fcsj_actual != '' and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'";
  1208 + if(line.length() != 0)
  1209 + sql += " and xl_bm = '"+line+"'";
  1210 + if(company.length() != 0)
  1211 + sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'";
  1212 +
  1213 + list = jdbcTemplate.query(sql,
  1214 + new RowMapper<ScheduleRealInfo>(){
  1215 + @Override
  1216 + public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
  1217 + ScheduleRealInfo schedule = new ScheduleRealInfo();
  1218 + schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  1219 + schedule.setRealExecDate(rs.getString("real_exec_date"));
  1220 + schedule.setXlName(rs.getString("xl_name"));
  1221 + schedule.setFcsj(rs.getString("fcsj"));
  1222 + schedule.setFcsjActual(rs.getString("fcsj_actual"));
  1223 + schedule.setZdsj(rs.getString("zdsj"));
  1224 + schedule.setZdsjActual(rs.getString("zdsj_actual"));
  1225 + schedule.setQdzName(rs.getString("qdz_name"));
  1226 + schedule.setZdzName(rs.getString("zdz_name"));
  1227 + schedule.setXlDir(rs.getString("xl_dir"));
  1228 + schedule.setStatus(rs.getInt("status"));
  1229 + schedule.setGsName(rs.getString("gs_name"));
  1230 + schedule.setFgsName(rs.getString("fgs_name"));
  1231 +
  1232 + int startOpt = 0;
  1233 + if(rs.getString("start_opt") != null && rs.getString("start_opt").trim().length() != 0){
  1234 + String[] split = rs.getString("start_opt").split(":");
  1235 + startOpt = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);
  1236 + }
  1237 +
  1238 + if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
  1239 + schedule.setFcsjActual(null);
  1240 + }
  1241 + if(schedule.getZdsjActual() != null && schedule.getZdsjActual().trim().length() == 0){
  1242 + schedule.setZdsjActual(null);
  1243 + }
  1244 + if(schedule.getFcsj() != null){
  1245 + String[] split = schedule.getFcsj().split(":");
  1246 + int fcsj = Integer.valueOf(split[0]) * 60 + Integer.valueOf(split[1]);
  1247 + if(fcsj < startOpt)
  1248 + fcsj += 1440;
  1249 + schedule.setFcsjT((long)fcsj);
  1250 + }
  1251 + if(schedule.getFcsjActual() != null){
  1252 + String[] split = schedule.getFcsjActual().split(":");
  1253 + int fcsjA = Integer.valueOf(split[0]) * 60 + Integer.valueOf(split[1]);
  1254 + if(fcsjA < startOpt || !schedule.getRealExecDate().equals(schedule.getScheduleDateStr()))
  1255 + fcsjA += 1440;
  1256 + schedule.setFcsjActualTime((long)fcsjA);
  1257 + }
  1258 +
  1259 + return schedule;
  1260 + }
  1261 + });
  1262 +
  1263 + } catch (Exception e) {
  1264 + // TODO: handle exception
  1265 + e.printStackTrace();
  1266 + }
1196 1267
1197 - for(ScheduleRealInfo schedule : list){  
1198 - if(schedule.getBcType().equals("in") || schedule.getBcType().equals("out") || schedule.getBcType().equals("ldks"))  
1199 - continue;  
1200 - if(schedule.getStatus() == -1){  
1201 - continue;  
1202 - }  
1203 - String key = schedule.getXlName();  
1204 - if(key == null || key.trim().length() == 0)  
1205 - continue;  
1206 - if(!keyMap.containsKey(key))  
1207 - keyMap.put(key, new ArrayList<ScheduleRealInfo>());  
1208 - keyMap.get(key).add(schedule); 1268 + Map<String, List<ScheduleRealInfo>> keyMap = new HashMap<String, List<ScheduleRealInfo>>();
  1269 + String companyName = "", subCompanyName = "";
  1270 +
  1271 + for(ScheduleRealInfo s : list){
  1272 + String xlName = s.getXlName();
  1273 + if(!keyMap.containsKey(xlName))
  1274 + keyMap.put(xlName, new ArrayList<ScheduleRealInfo>());
  1275 + keyMap.get(xlName).add(s);
  1276 + if(companyName.length()==0&&s.getGsName()!=null&&s.getGsName().trim().length()!=0)
  1277 + companyName = s.getGsName();
  1278 + if(subCompanyName.length()==0&&s.getFgsName()!=null&&s.getFgsName().trim().length()!=0)
  1279 + subCompanyName = s.getFgsName();
1209 } 1280 }
1210 - for(String key : keyMap.keySet()){ 1281 +
  1282 + for(String xlName : keyMap.keySet()){
1211 Map<String, Object> tempMap = new HashMap<String, Object>(); 1283 Map<String, Object> tempMap = new HashMap<String, Object>();
1212 - Map<Long, ScheduleRealInfo> temp0 = new HashMap<Long, ScheduleRealInfo>();  
1213 - List<Long> longList0 = new ArrayList<Long>();  
1214 - Map<Long, ScheduleRealInfo> temp1 = new HashMap<Long, ScheduleRealInfo>();  
1215 - List<Long> longList1 = new ArrayList<Long>();  
1216 - String companyName = "", subCompanyName = "";  
1217 - for(ScheduleRealInfo schedule : keyMap.get(key)){  
1218 - if(schedule.getFcsjActual() == null || schedule.getFcsjActual().trim().length() == 0){  
1219 - continue;  
1220 - }  
1221 - if(schedule.getGsName() != null && companyName.length() == 0)  
1222 - companyName = schedule.getGsName();  
1223 - if(schedule.getFgsName() != null && subCompanyName.length() == 0)  
1224 - subCompanyName = schedule.getFgsName();  
1225 - String[] split = schedule.getFcsj().split(":");  
1226 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1227 - schedule.setFcsjT(min);  
1228 - if(schedule.getXlDir().equals("0")){  
1229 - temp0.put(min, schedule);  
1230 - longList0.add(min);  
1231 - } else {  
1232 - temp1.put(min, schedule);  
1233 - longList1.add(min); 1284 + tempMap.put("date", date.substring(5));
  1285 + tempMap.put("line", xlName);
  1286 + List<Long> up1 = new ArrayList<Long>();
  1287 + List<Long> up2 = new ArrayList<Long>();;
  1288 + List<Long> dn1 = new ArrayList<Long>();
  1289 + List<Long> dn2 = new ArrayList<Long>();
  1290 + Map<Long, ScheduleRealInfo> up1Map = new HashMap<Long, ScheduleRealInfo>();
  1291 + Map<Long, ScheduleRealInfo> up2Map = new HashMap<Long, ScheduleRealInfo>();
  1292 + Map<Long, ScheduleRealInfo> dn1Map = new HashMap<Long, ScheduleRealInfo>();
  1293 + Map<Long, ScheduleRealInfo> dn2Map = new HashMap<Long, ScheduleRealInfo>();
  1294 + for(ScheduleRealInfo s : keyMap.get(xlName)){
  1295 + if(s.getXlDir().equals("0")){
  1296 + up1.add(s.getFcsjT());
  1297 + up2.add(s.getFcsjActualTime());
  1298 + up1Map.put(s.getFcsjT(), s);
  1299 + up2Map.put(s.getFcsjActualTime(), s);
  1300 + } else if(s.getXlDir().equals("1")){
  1301 + dn1.add(s.getFcsjT());
  1302 + dn2.add(s.getFcsjActualTime());
  1303 + dn1Map.put(s.getFcsjT(), s);
  1304 + dn2Map.put(s.getFcsjActualTime(), s);
1234 } 1305 }
1235 } 1306 }
1236 -  
1237 - if(longList0.size() == 0 && longList1.size() == 0){  
1238 - continue;  
1239 - }  
1240 -  
1241 - if(longList0.size() != 0){  
1242 - Collections.sort(longList0);  
1243 - ScheduleRealInfo shouban0 = temp0.get(longList0.get(0));  
1244 - ScheduleRealInfo moban0 = temp0.get(longList0.get(longList0.size() - 1));  
1245 - tempMap.put("qdzFirst0", shouban0.getQdzName());  
1246 - tempMap.put("jhfcFirst0", shouban0.getFcsj());  
1247 - tempMap.put("qdzLast0", moban0.getQdzName());  
1248 - tempMap.put("jhfcLast0", moban0.getFcsj());  
1249 - if(shouban0.getFcsjActual() != null){  
1250 - String[] split = shouban0.getFcsjActual().split(":");  
1251 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1252 - long delay = shouban0.getFcsjT() - min;  
1253 - tempMap.put("sjfcFirst0", shouban0.getFcsjActual());  
1254 - if(delay > 0)  
1255 - tempMap.put("delayFirst0", "+" + delay);  
1256 - else  
1257 - tempMap.put("delayFirst0", delay);  
1258 - } else {  
1259 - tempMap.put("sjfcFirst0", "/");  
1260 - tempMap.put("delayFirst0", "/");  
1261 - }  
1262 - if(moban0.getFcsjActual() != null){  
1263 - String[] split = moban0.getFcsjActual().split(":");  
1264 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1265 - long delay = moban0.getFcsjT() - min;  
1266 - tempMap.put("sjfcLast0", moban0.getFcsjActual());  
1267 - if(delay > 0)  
1268 - tempMap.put("delayLast0", "+" + delay);  
1269 - else  
1270 - tempMap.put("delayLast0", delay);  
1271 - } else {  
1272 - tempMap.put("sjfcLast0", "/");  
1273 - tempMap.put("delayLast0", "/");  
1274 - }  
1275 - }else{ 1307 + if(up1.size() > 0 && up2.size() > 0){
  1308 + Collections.sort(up1);
  1309 + Collections.sort(up2);
  1310 + ScheduleRealInfo s1 = up1Map.get(up1.get(0));
  1311 + ScheduleRealInfo s2 = up2Map.get(up2.get(0));
  1312 + ScheduleRealInfo s3 = up1Map.get(up1.get(up1.size()-1));
  1313 + ScheduleRealInfo s4 = up2Map.get(up2.get(up2.size()-1));
  1314 + long delayFirst0 = up1.get(0) - up2.get(0);
  1315 + long delayLast0 = up1.get(up1.size()-1) - up2.get(up2.size()-1);
  1316 + tempMap.put("qdzFirst0", s1.getQdzName());
  1317 + tempMap.put("jhfcFirst0", s1.getFcsj());
  1318 + tempMap.put("sjfcFirst0", s2.getFcsjActual());
  1319 + tempMap.put("delayFirst0", delayFirst0>0?"+"+delayFirst0:delayFirst0);
  1320 + tempMap.put("qdzLast0", s3.getQdzName());
  1321 + tempMap.put("jhfcLast0", s3.getFcsj());
  1322 + tempMap.put("sjfcLast0", s4.getFcsjActual());
  1323 + tempMap.put("delayLast0", delayLast0>0?"+"+delayLast0:delayLast0);
  1324 + } else {
1276 tempMap.put("qdzFirst0", "--"); 1325 tempMap.put("qdzFirst0", "--");
1277 tempMap.put("jhfcFirst0", "/"); 1326 tempMap.put("jhfcFirst0", "/");
1278 - tempMap.put("qdzLast0", "--");  
1279 - tempMap.put("jhfcLast0", "/");  
1280 tempMap.put("sjfcFirst0", "/"); 1327 tempMap.put("sjfcFirst0", "/");
1281 tempMap.put("delayFirst0", "/"); 1328 tempMap.put("delayFirst0", "/");
  1329 + tempMap.put("qdzLast0", "--");
  1330 + tempMap.put("jhfcLast0", "/");
1282 tempMap.put("sjfcLast0", "/"); 1331 tempMap.put("sjfcLast0", "/");
1283 tempMap.put("delayLast0", "/"); 1332 tempMap.put("delayLast0", "/");
1284 } 1333 }
1285 -  
1286 - if(longList1.size() != 0){  
1287 - Collections.sort(longList1);  
1288 - ScheduleRealInfo shouban1 = temp1.get(longList1.get(0));  
1289 - ScheduleRealInfo moban1 = temp1.get(longList1.get(longList1.size() - 1));  
1290 - tempMap.put("qdzFirst1", shouban1.getQdzName());  
1291 - tempMap.put("jhfcFirst1", shouban1.getFcsj());  
1292 - tempMap.put("qdzLast1", moban1.getQdzName());  
1293 - tempMap.put("jhfcLast1", moban1.getFcsj());  
1294 - if(shouban1.getFcsjActual() != null){  
1295 - String[] split = shouban1.getFcsjActual().split(":");  
1296 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1297 - long delay = shouban1.getFcsjT() - min;  
1298 - tempMap.put("sjfcFirst1", shouban1.getFcsjActual());  
1299 - if(delay > 0)  
1300 - tempMap.put("delayFirst1", "+" + delay);  
1301 - else  
1302 - tempMap.put("delayFirst1", delay);  
1303 - } else {  
1304 - tempMap.put("sjfcFirst1", "/");  
1305 - tempMap.put("delayFirst1", "/");  
1306 - }  
1307 - if(moban1.getFcsjActual() != null){  
1308 - String[] split = moban1.getFcsjActual().split(":");  
1309 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1310 - long delay = moban1.getFcsjT() - min;  
1311 - tempMap.put("sjfcLast1", moban1.getFcsjActual());  
1312 - if(delay > 0)  
1313 - tempMap.put("delayLast1", "+" + delay);  
1314 - else  
1315 - tempMap.put("delayLast1", delay);  
1316 - } else {  
1317 - tempMap.put("sjfcLast1", "/");  
1318 - tempMap.put("delayLast1", "/");  
1319 - }  
1320 - }else{ 1334 + if(dn1.size() > 0 && dn2.size() > 0){
  1335 + Collections.sort(dn1);
  1336 + Collections.sort(dn2);
  1337 + ScheduleRealInfo s1 = dn1Map.get(dn1.get(0));
  1338 + ScheduleRealInfo s2 = dn2Map.get(dn2.get(0));
  1339 + ScheduleRealInfo s3 = dn1Map.get(dn1.get(dn1.size()-1));
  1340 + ScheduleRealInfo s4 = dn2Map.get(dn2.get(dn2.size()-1));
  1341 + long delayFirst1 = dn1.get(0) - dn2.get(0);
  1342 + long delayLast1 = dn1.get(dn1.size()-1) - dn2.get(dn2.size()-1);
  1343 + tempMap.put("qdzFirst1", s1.getQdzName());
  1344 + tempMap.put("jhfcFirst1", s1.getFcsj());
  1345 + tempMap.put("sjfcFirst1", s2.getFcsjActual());
  1346 + tempMap.put("delayFirst1", delayFirst1>0?"+"+delayFirst1:delayFirst1);
  1347 + tempMap.put("qdzLast1", s3.getQdzName());
  1348 + tempMap.put("jhfcLast1", s3.getFcsj());
  1349 + tempMap.put("sjfcLast1", s4.getFcsjActual());
  1350 + tempMap.put("delayLast1", delayLast1>0?"+"+delayLast1:delayLast1);
  1351 + } else {
1321 tempMap.put("qdzFirst1", "--"); 1352 tempMap.put("qdzFirst1", "--");
1322 tempMap.put("jhfcFirst1", "/"); 1353 tempMap.put("jhfcFirst1", "/");
1323 - tempMap.put("qdzLast1", "--");  
1324 - tempMap.put("jhfcLast1", "/");  
1325 tempMap.put("sjfcFirst1", "/"); 1354 tempMap.put("sjfcFirst1", "/");
1326 tempMap.put("delayFirst1", "/"); 1355 tempMap.put("delayFirst1", "/");
  1356 + tempMap.put("qdzLast1", "--");
  1357 + tempMap.put("jhfcLast1", "/");
1327 tempMap.put("sjfcLast1", "/"); 1358 tempMap.put("sjfcLast1", "/");
1328 tempMap.put("delayLast1", "/"); 1359 tempMap.put("delayLast1", "/");
1329 } 1360 }
1330 -  
1331 - tempMap.put("date", date);  
1332 tempMap.put("company", companyName); 1361 tempMap.put("company", companyName);
1333 tempMap.put("subCompany", subCompanyName); 1362 tempMap.put("subCompany", subCompanyName);
1334 - tempMap.put("line", key); 1363 + tempMap.put("date", date);
  1364 + tempMap.put("line", xlName);
1335 resList.add(tempMap); 1365 resList.add(tempMap);
1336 } 1366 }
1337 - 1367 +
1338 if(type.equals("export")){ 1368 if(type.equals("export")){
1339 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), 1369 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
1340 sdfSimple = new SimpleDateFormat("yyyyMMdd"); 1370 sdfSimple = new SimpleDateFormat("yyyyMMdd");
@@ -1357,164 +1387,248 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1357,164 +1387,248 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1357 1387
1358 @Override 1388 @Override
1359 public List<Map<String, Object>> firstAndLastBus_sum(Map<String, Object> map) { 1389 public List<Map<String, Object>> firstAndLastBus_sum(Map<String, Object> map) {
  1390 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
1360 NumberFormat nf = NumberFormat.getNumberInstance(); 1391 NumberFormat nf = NumberFormat.getNumberInstance();
1361 nf.setMinimumFractionDigits(2); 1392 nf.setMinimumFractionDigits(2);
  1393 + List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>();
1362 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); 1394 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
1363 - Map<String, List<ScheduleRealInfo>> keyMap = new HashMap<String, List<ScheduleRealInfo>>();  
1364 1395
1365 String company = map.get("company").toString(); 1396 String company = map.get("company").toString();
1366 String subCompany = map.get("subCompany").toString(); 1397 String subCompany = map.get("subCompany").toString();
1367 String line = map.get("line").toString(); 1398 String line = map.get("line").toString();
1368 - String date = map.get("date").toString(); 1399 +// String date = map.get("date").toString();
  1400 + String startDate = map.get("startDate").toString();
  1401 + String endDate = map.get("endDate").toString();
1369 String type = map.get("type").toString(); 1402 String type = map.get("type").toString();
1370 1403
1371 - if(date.length() == 0)  
1372 - date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());  
1373 -  
1374 - List<ScheduleRealInfo> list = this.getSchedule(company, subCompany, line, date); 1404 + if(startDate.length() == 0)
  1405 + startDate = sdf.format(new Date());
  1406 + if(endDate.length() == 0)
  1407 + endDate = sdf.format(new Date());
1375 1408
1376 - for(ScheduleRealInfo schedule : list){  
1377 - if(schedule.getBcType().equals("in") || schedule.getBcType().equals("out") || schedule.getBcType().equals("ldks"))  
1378 - continue;  
1379 - if(schedule.getStatus() == -1){  
1380 - continue;  
1381 - }  
1382 - String key = schedule.getXlName();  
1383 - if(key == null || key.trim().length() == 0)  
1384 - continue;  
1385 - if(!keyMap.containsKey(key))  
1386 - keyMap.put(key, new ArrayList<ScheduleRealInfo>());  
1387 - keyMap.get(key).add(schedule); 1409 + String dates = "";
  1410 + if(startDate.equals(endDate)){
  1411 + String[] split = startDate.split("-");
  1412 + dates = split[0]+"年"+split[1]+"月"+split[2]+"日";
  1413 + } else {
  1414 + String[] split1 = startDate.split("-");
  1415 + String[] split2 = endDate.split("-");
  1416 + dates = split1[0]+"年"+split1[1]+"月"+split1[2]+"日--"
  1417 + +split2[0]+"年"+split2[1]+"月"+split2[2]+"日";
1388 } 1418 }
1389 - for(String key : keyMap.keySet()){  
1390 - Map<String, Object> tempMap = new HashMap<String, Object>();  
1391 - Map<String, Object> m = new HashMap<String, Object>();  
1392 - Map<Long, ScheduleRealInfo> temp0 = new HashMap<Long, ScheduleRealInfo>();  
1393 - List<Long> longList0 = new ArrayList<Long>();  
1394 - Map<Long, ScheduleRealInfo> temp1 = new HashMap<Long, ScheduleRealInfo>();  
1395 - List<Long> longList1 = new ArrayList<Long>();  
1396 - String companyName = "", subCompanyName = "";  
1397 - for(ScheduleRealInfo schedule : keyMap.get(key)){  
1398 - if(schedule.getFcsjActual() == null || schedule.getFcsjActual().trim().length() == 0){  
1399 - continue;  
1400 - }  
1401 - if(schedule.getGsName() != null && companyName.length() == 0)  
1402 - companyName = schedule.getGsName();  
1403 - if(schedule.getFgsName() != null && subCompanyName.length() == 0)  
1404 - subCompanyName = schedule.getFgsName();  
1405 - String[] split = schedule.getFcsj().split(":");  
1406 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1407 - schedule.setFcsjT(min);  
1408 - if(schedule.getXlDir().equals("0")){  
1409 - temp0.put(min, schedule);  
1410 - longList0.add(min);  
1411 - } else {  
1412 - temp1.put(min, schedule);  
1413 - longList1.add(min); 1419 +
  1420 + try {
  1421 + String sql = "select a.schedule_date_Str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name,"
  1422 + + " b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line"
  1423 + + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'"
  1424 + + " and fcsj_actual is not null and fcsj_actual != '' and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'";
  1425 + if(line.length() != 0)
  1426 + sql += " and xl_bm = '"+line+"'";
  1427 + if(company.length() != 0)
  1428 + sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'";
  1429 +
  1430 + list = jdbcTemplate.query(sql,
  1431 + new RowMapper<ScheduleRealInfo>(){
  1432 + @Override
  1433 + public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
  1434 + ScheduleRealInfo schedule = new ScheduleRealInfo();
  1435 + schedule.setScheduleDateStr(rs.getString("schedule_date_Str"));
  1436 + schedule.setRealExecDate(rs.getString("real_exec_date"));
  1437 + schedule.setXlName(rs.getString("xl_name"));
  1438 + schedule.setFcsj(rs.getString("fcsj"));
  1439 + schedule.setFcsjActual(rs.getString("fcsj_actual"));
  1440 + schedule.setZdsj(rs.getString("zdsj"));
  1441 + schedule.setZdsjActual(rs.getString("zdsj_actual"));
  1442 + schedule.setQdzName(rs.getString("qdz_name"));
  1443 + schedule.setZdzName(rs.getString("zdz_name"));
  1444 + schedule.setXlDir(rs.getString("xl_dir"));
  1445 + schedule.setStatus(rs.getInt("status"));
  1446 + schedule.setGsName(rs.getString("gs_name"));
  1447 + schedule.setFgsName(rs.getString("fgs_name"));
  1448 +
  1449 + int startOpt = 0;
  1450 + if(rs.getString("start_opt") != null && rs.getString("start_opt").trim().length() != 0){
  1451 + String[] split = rs.getString("start_opt").split(":");
  1452 + startOpt = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);
  1453 + }
  1454 +
  1455 + if(schedule.getFcsjActual() != null && schedule.getFcsjActual().trim().length() == 0){
  1456 + schedule.setFcsjActual(null);
  1457 + }
  1458 + if(schedule.getZdsjActual() != null && schedule.getZdsjActual().trim().length() == 0){
  1459 + schedule.setZdsjActual(null);
  1460 + }
  1461 + if(schedule.getFcsj() != null){
  1462 + String[] split = schedule.getFcsj().split(":");
  1463 + int fcsj = Integer.valueOf(split[0]) * 60 + Integer.valueOf(split[1]);
  1464 + if(fcsj < startOpt)
  1465 + fcsj += 1440;
  1466 + schedule.setFcsjT((long)fcsj);
  1467 + }
  1468 + if(schedule.getFcsjActual() != null){
  1469 + String[] split = schedule.getFcsjActual().split(":");
  1470 + int fcsjA = Integer.valueOf(split[0]) * 60 + Integer.valueOf(split[1]);
  1471 + if(fcsjA < startOpt || !schedule.getRealExecDate().equals(schedule.getScheduleDateStr()))
  1472 + fcsjA += 1440;
  1473 + schedule.setFcsjActualTime((long)fcsjA);
  1474 + }
  1475 +
  1476 + return schedule;
1414 } 1477 }
1415 - } 1478 + });
1416 1479
1417 - if(longList0.size() == 0 && longList1.size() == 0){  
1418 - continue; 1480 + } catch (Exception e) {
  1481 + // TODO: handle exception
  1482 + e.printStackTrace();
  1483 + }
  1484 +
  1485 + Map<String, Map<String, List<ScheduleRealInfo>>> keyMap = new HashMap<String, Map<String,List<ScheduleRealInfo>>>();
  1486 + String companyName = "", subCompanyName = "";
  1487 +
  1488 + for(ScheduleRealInfo s : list){
  1489 + String xlName = s.getXlName();
  1490 + String date = s.getScheduleDateStr();
  1491 + if(!keyMap.containsKey(xlName))
  1492 + keyMap.put(xlName, new HashMap<String, List<ScheduleRealInfo>>());
  1493 + if(!keyMap.get(xlName).containsKey(date))
  1494 + keyMap.get(xlName).put(date, new ArrayList<ScheduleRealInfo>());
  1495 + keyMap.get(xlName).get(date).add(s);
  1496 + if(companyName.length()==0&&s.getGsName()!=null&&s.getGsName().trim().length()!=0)
  1497 + companyName = s.getGsName();
  1498 + if(subCompanyName.length()==0&&s.getFgsName()!=null&&s.getFgsName().trim().length()!=0)
  1499 + subCompanyName = s.getFgsName();
  1500 + }
  1501 +
  1502 + for(String xlName : keyMap.keySet()){
  1503 + List<Map<String, Object>> tempList = new ArrayList<Map<String,Object>>();
  1504 + Map<String, Object> tempMap = new HashMap<String, Object>();
  1505 + Map<Long, String> dateMap = new HashMap<Long, String>();
  1506 + List<Long> Longs = new ArrayList<Long>();
  1507 + int jhbc = 0, sjbc = 0;
  1508 + for(String date : keyMap.get(xlName).keySet()){
  1509 + String[] split = date.split("-");
  1510 + long l = Long.valueOf(split[0])*10000 + Long.valueOf(split[1])*100 + Long.valueOf(split[2]);
  1511 + dateMap.put(l, date);
  1512 + Longs.add(l);
1419 } 1513 }
1420 - int jhbc = 0;  
1421 - int sjbc = 0;  
1422 -  
1423 - if(longList0.size() != 0){  
1424 - Collections.sort(longList0);  
1425 - ScheduleRealInfo shouban0 = temp0.get(longList0.get(0));  
1426 - ScheduleRealInfo moban0 = temp0.get(longList0.get(longList0.size() - 1));  
1427 - if(shouban0.getFcsjActual() != null){  
1428 - jhbc++;  
1429 - String[] split = shouban0.getFcsjActual().split(":");  
1430 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1431 - long delay = shouban0.getFcsjT() - min;  
1432 - if(delay >= -3 && delay <= 1){  
1433 - sjbc++; 1514 + Collections.sort(Longs);
  1515 + for(long l : Longs){
  1516 + String date = dateMap.get(l);
  1517 + Map<String, Object> temp = new HashMap<String, Object>();
  1518 + temp.put("date", date.substring(5));
  1519 + temp.put("line", xlName);
  1520 + List<Long> up1 = new ArrayList<Long>();
  1521 + List<Long> up2 = new ArrayList<Long>();;
  1522 + List<Long> dn1 = new ArrayList<Long>();
  1523 + List<Long> dn2 = new ArrayList<Long>();
  1524 + Map<Long, ScheduleRealInfo> up1Map = new HashMap<Long, ScheduleRealInfo>();
  1525 + Map<Long, ScheduleRealInfo> up2Map = new HashMap<Long, ScheduleRealInfo>();
  1526 + Map<Long, ScheduleRealInfo> dn1Map = new HashMap<Long, ScheduleRealInfo>();
  1527 + Map<Long, ScheduleRealInfo> dn2Map = new HashMap<Long, ScheduleRealInfo>();
  1528 + for(ScheduleRealInfo s : keyMap.get(xlName).get(date)){
  1529 + if(s.getXlDir().equals("0")){
  1530 + up1.add(s.getFcsjT());
  1531 + up2.add(s.getFcsjActualTime());
  1532 + up1Map.put(s.getFcsjT(), s);
  1533 + up2Map.put(s.getFcsjActualTime(), s);
  1534 + } else if(s.getXlDir().equals("1")){
  1535 + dn1.add(s.getFcsjT());
  1536 + dn2.add(s.getFcsjActualTime());
  1537 + dn1Map.put(s.getFcsjT(), s);
  1538 + dn2Map.put(s.getFcsjActualTime(), s);
1434 } 1539 }
1435 - m.put("qdzFirst0", shouban0.getQdzName());  
1436 - m.put("jhfcFirst0", shouban0.getFcsj());  
1437 - m.put("sjfcFirst0", shouban0.getFcsjActual());  
1438 - m.put("delayFirst0", delay>0?"+"+delay:delay);  
1439 } 1540 }
1440 -  
1441 - if(moban0.getFcsjActual() != null){  
1442 - jhbc++;  
1443 - String[] split = moban0.getFcsjActual().split(":");  
1444 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1445 - long delay = moban0.getFcsjT() - min;  
1446 - if(delay >= -3 && delay <= 1){ 1541 + if(up1.size() > 0 && up2.size() > 0){
  1542 + Collections.sort(up1);
  1543 + Collections.sort(up2);
  1544 + ScheduleRealInfo s1 = up1Map.get(up1.get(0));
  1545 + ScheduleRealInfo s2 = up2Map.get(up2.get(0));
  1546 + ScheduleRealInfo s3 = up1Map.get(up1.get(up1.size()-1));
  1547 + ScheduleRealInfo s4 = up2Map.get(up2.get(up2.size()-1));
  1548 + long delayFirst0 = up1.get(0) - up2.get(0);
  1549 + long delayLast0 = up1.get(up1.size()-1) - up2.get(up2.size()-1);
  1550 + temp.put("qdzFirst0", s1.getQdzName());
  1551 + temp.put("jhfcFirst0", s1.getFcsj());
  1552 + temp.put("sjfcFirst0", s2.getFcsjActual());
  1553 + temp.put("delayFirst0", delayFirst0>0?"+"+delayFirst0:delayFirst0);
  1554 + temp.put("qdzLast0", s3.getQdzName());
  1555 + temp.put("jhfcLast0", s3.getFcsj());
  1556 + temp.put("sjfcLast0", s4.getFcsjActual());
  1557 + temp.put("delayLast0", delayLast0>0?"+"+delayLast0:delayLast0);
  1558 + jhbc += 2;
  1559 + if(delayFirst0 <= 1l && delayFirst0 >= -3l)
1447 sjbc++; 1560 sjbc++;
1448 - }  
1449 - m.put("qdzLast0", moban0.getQdzName());  
1450 - m.put("jhfcLast0", moban0.getFcsj());  
1451 - m.put("sjfcLast0", moban0.getFcsjActual());  
1452 - m.put("delayLast0", delay>0?"+"+delay:delay);  
1453 - }  
1454 - } else {  
1455 - m.put("qdzFirst0", "--");  
1456 - m.put("jhfcFirst0", "/");  
1457 - m.put("sjfcFirst0", "/");  
1458 - m.put("delayFirst0", "/");  
1459 - m.put("qdzLast0", "--");  
1460 - m.put("jhfcLast0", "/");  
1461 - m.put("sjfcLast0", "/");  
1462 - m.put("delayLast0", "/");  
1463 - }  
1464 -  
1465 - if(longList1.size() != 0){  
1466 - Collections.sort(longList1);  
1467 - ScheduleRealInfo shouban1 = temp1.get(longList1.get(0));  
1468 - ScheduleRealInfo moban1 = temp1.get(longList1.get(longList1.size() - 1));  
1469 - if(shouban1.getFcsjActual() != null){  
1470 - jhbc++;  
1471 - String[] split = shouban1.getFcsjActual().split(":");  
1472 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1473 - long delay = shouban1.getFcsjT() - min;  
1474 - if(delay >= -3 && delay <= 1){ 1561 + if(delayLast0 <= 1l && delayLast0 >= -3l)
1475 sjbc++; 1562 sjbc++;
1476 - }  
1477 - m.put("qdzFirst1", shouban1.getQdzName());  
1478 - m.put("jhfcFirst1", shouban1.getFcsj());  
1479 - m.put("sjfcFirst1", shouban1.getFcsjActual());  
1480 - m.put("delayFirst1", delay>0?"+"+delay:delay); 1563 + } else {
  1564 + temp.put("qdzFirst0", "--");
  1565 + temp.put("jhfcFirst0", "/");
  1566 + temp.put("sjfcFirst0", "/");
  1567 + temp.put("delayFirst0", "/");
  1568 + temp.put("qdzLast0", "--");
  1569 + temp.put("jhfcLast0", "/");
  1570 + temp.put("sjfcLast0", "/");
  1571 + temp.put("delayLast0", "/");
1481 } 1572 }
1482 -  
1483 - if(moban1.getFcsjActual() != null){  
1484 - jhbc++;  
1485 - String[] split = moban1.getFcsjActual().split(":");  
1486 - long min = Integer.valueOf(split[0])*60 + Integer.valueOf(split[1]);  
1487 - long delay = moban1.getFcsjT() - min;  
1488 - if(delay >= -3 && delay <= 1){ 1573 + if(dn1.size() > 0 && dn2.size() > 0){
  1574 + Collections.sort(dn1);
  1575 + Collections.sort(dn2);
  1576 + ScheduleRealInfo s1 = dn1Map.get(dn1.get(0));
  1577 + ScheduleRealInfo s2 = dn2Map.get(dn2.get(0));
  1578 + ScheduleRealInfo s3 = dn1Map.get(dn1.get(dn1.size()-1));
  1579 + ScheduleRealInfo s4 = dn2Map.get(dn2.get(dn2.size()-1));
  1580 + long delayFirst1 = dn1.get(0) - dn2.get(0);
  1581 + long delayLast1 = dn1.get(dn1.size()-1) - dn2.get(dn2.size()-1);
  1582 + temp.put("qdzFirst1", s1.getQdzName());
  1583 + temp.put("jhfcFirst1", s1.getFcsj());
  1584 + temp.put("sjfcFirst1", s2.getFcsjActual());
  1585 + temp.put("delayFirst1", delayFirst1>0?"+"+delayFirst1:delayFirst1);
  1586 + temp.put("qdzLast1", s3.getQdzName());
  1587 + temp.put("jhfcLast1", s3.getFcsj());
  1588 + temp.put("sjfcLast1", s4.getFcsjActual());
  1589 + temp.put("delayLast1", delayLast1>0?"+"+delayLast1:delayLast1);
  1590 + jhbc += 2;
  1591 + if(delayFirst1 <= 1l && delayFirst1 >= -3l)
1489 sjbc++; 1592 sjbc++;
1490 - }  
1491 - m.put("qdzLast1", moban1.getQdzName());  
1492 - m.put("jhfcLast1", moban1.getFcsj());  
1493 - m.put("sjfcLast1", moban1.getFcsjActual());  
1494 - m.put("delayLast1", delay>0?"+"+delay:delay); 1593 + if(delayLast1 <= 1l && delayLast1 >= -3l)
  1594 + sjbc++;
  1595 + } else {
  1596 + temp.put("qdzFirst1", "--");
  1597 + temp.put("jhfcFirst1", "/");
  1598 + temp.put("sjfcFirst1", "/");
  1599 + temp.put("delayFirst1", "/");
  1600 + temp.put("qdzLast1", "--");
  1601 + temp.put("jhfcLast1", "/");
  1602 + temp.put("sjfcLast1", "/");
  1603 + temp.put("delayLast1", "/");
1495 } 1604 }
1496 - } else {  
1497 - m.put("qdzFirst1", "--");  
1498 - m.put("jhfcFirst1", "/");  
1499 - m.put("sjfcFirst1", "/");  
1500 - m.put("delayFirst1", "/");  
1501 - m.put("qdzLast1", "--");  
1502 - m.put("jhfcLast1", "/");  
1503 - m.put("sjfcLast1", "/");  
1504 - m.put("delayLast1", "/"); 1605 + tempList.add(temp);
1505 } 1606 }
1506 -  
1507 - m.put("line", key);  
1508 - tempMap.put("map", m); 1607 + tempMap.put("map", tempList);
  1608 + tempMap.put("company", companyName);
  1609 + tempMap.put("subCompany", subCompanyName);
  1610 + tempMap.put("date", dates);
  1611 + tempMap.put("line", xlName);
1509 tempMap.put("jhbc", jhbc); 1612 tempMap.put("jhbc", jhbc);
1510 tempMap.put("sjbc", sjbc); 1613 tempMap.put("sjbc", sjbc);
1511 tempMap.put("zdl", nf.format((float) sjbc / jhbc *100) + "%"); 1614 tempMap.put("zdl", nf.format((float) sjbc / jhbc *100) + "%");
1512 - tempMap.put("date", date);  
1513 - tempMap.put("company", companyName);  
1514 - tempMap.put("subCompany", subCompanyName);  
1515 - tempMap.put("line", key);  
1516 resList.add(tempMap); 1615 resList.add(tempMap);
1517 } 1616 }
  1617 +
  1618 + Map<String, Object> tempMap = new HashMap<String, Object>();
  1619 + if(resList.size() > 0){
  1620 + tempMap.put("date", "合计汇总");
  1621 + int jhbc = 0, sjbc = 0;
  1622 + for(Map<String, Object> m : resList){
  1623 + jhbc += Integer.valueOf(m.get("jhbc").toString());
  1624 + sjbc += Integer.valueOf(m.get("sjbc").toString());
  1625 + }
  1626 + tempMap.put("jhbc", jhbc);
  1627 + tempMap.put("sjbc", sjbc);
  1628 + tempMap.put("zdl", nf.format((float) sjbc / jhbc *100) + "%");
  1629 + if(!type.equals("export"))
  1630 + resList.add(tempMap);
  1631 + }
1518 1632
1519 if(type.equals("export")){ 1633 if(type.equals("export")){
1520 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), 1634 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
@@ -1525,8 +1639,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1525,8 +1639,9 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1525 try { 1639 try {
1526 listI.add(resList.iterator()); 1640 listI.add(resList.iterator());
1527 String path = this.getClass().getResource("/").getPath()+"static/pages/forms/"; 1641 String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
1528 - ee.excelReplace(listI, new Object[] { m }, path+"mould/firstAndLastBus_sum.xls",  
1529 - path+"export/线路首末班准点率" + sdfSimple.format(sdfMonth.parse(date)) + ".xls"); 1642 + ee.excelReplace(listI, new Object[] { tempMap }, path+"mould/firstAndLastBus_sum.xls",
  1643 + path+"export/线路首末班准点率" + sdfSimple.format(sdfMonth.parse(startDate)) +
  1644 + (startDate.equals(endDate)?"":"-"+sdfSimple.format(sdfMonth.parse(endDate))) + ".xls");
1530 } catch (Exception e) { 1645 } catch (Exception e) {
1531 // TODO: handle exception 1646 // TODO: handle exception
1532 e.printStackTrace(); 1647 e.printStackTrace();
src/main/resources/static/pages/base/timesmodel/editlp.html 0 → 100644
  1 +<!-- 修改路牌名称 -->
  2 +<div class="modal fade" id="editlp_mobal" tabindex="-1" role="basic" aria-hidden="true">
  3 + <div class="modal-dialog">
  4 + <div class="modal-content">
  5 + <div class="modal-header">
  6 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  7 + <h4 class="modal-title">修改路牌名称</h4>
  8 + </div>
  9 + <div class="modal-body">
  10 + <form class="form-horizontal" action="/" method="post" id="editlpForm" role="form">
  11 + <!-- alert-danger 组件START -->
  12 + <div class="alert alert-danger display-hide" id="editlpAlert">
  13 + <button class="close" data-close="alert"></button>
  14 + 您的输入有误,请检查下面的输入项
  15 + </div>
  16 + <div class="portlet-body">
  17 + <div class="table-container" style="margin-top: 10px">
  18 + <table class="table table-striped table-bordered table-hover table-checkable" id="datatable_bctz">
  19 + <thead>
  20 + <tr role="row" class="heading">
  21 + <th width="50%">当前路牌名称</th>
  22 + <th width="50%" style="text-align: center;max-width: 50px;min-width: 40px;padding-left: 0;padding-right: 0;">修改路牌名称</th>
  23 + </tr>
  24 + </thead>
  25 + <tbody></tbody>
  26 + </table>
  27 + </div>
  28 + </div>
  29 + </form>
  30 + </div>
  31 + <div class="modal-footer">
  32 + <button type="button" class="btn default" data-dismiss="modal">取消</button>
  33 + <button type="button" class="btn btn-primary" id="editlpnext">确定</button>
  34 + </div>
  35 + </div>
  36 + </div>
  37 +</div>
  38 +<script type="text/html" id="editlp_temp">
  39 +{{each list as obj i }}
  40 + <tr role="row" class="filter">
  41 + <td>
  42 + <input type="text" readonly class="form-control form-filter input-sm" name="lpname_{{i+1}}" value="{{obj.lpName}}">
  43 + </td>
  44 + <td>
  45 + <input type="text" class="form-control form-filter input-sm" name="{{i+1}}" value="{{obj.lpName}}" required>
  46 + </td>
  47 + </tr>
  48 +{{/each}}
  49 +{{if list.length == 0}}
  50 + <tr>
  51 + <td colspan=3><h6 class="muted">没有找到相关数据</h6></td>
  52 + </tr>
  53 + {{/if}}
  54 +</script>
  55 +<script type="text/javascript">
  56 +$('#editlp_mobal').on('editlpMobal.show', function(e,obj,bf){
  57 + var lpArray = obj.configuration.taskTypes;
  58 + setTimeout(function(){
  59 + // 加载延迟200毫秒显示mobal
  60 + $('#editlp_mobal').modal({show : true,backdrop: 'static', keyboard: false});
  61 + },200);
  62 + // 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。
  63 + $('#editlp_mobal').on('show.bs.modal', function () {
  64 + // 把数据填充到模版中
  65 + var tbodyHtml = template('editlp_temp',{list:lpArray});
  66 + // 把渲染好的模版html文本追加到表格中
  67 + $('#datatable_bctz tbody').html(tbodyHtml);
  68 + });
  69 + // 获取表单元素
  70 + var form = $('#editlpForm');
  71 + // 错误提示元素
  72 + var editlpAlert = $('#editlpAlert', form);
  73 + // 下一步点击事件
  74 + $('#editlpnext').on('click', function() {
  75 + form.submit();// 表单提交
  76 + });
  77 + // 表单验证
  78 + form.validate({
  79 + errorElement : 'span',
  80 + errorClass : 'help-block help-block-error',
  81 + focusInvalid : false,
  82 + rules : {
  83 + },
  84 + invalidHandler : function(event, validator) {
  85 + editlpAlert.show();
  86 + App.scrollTo(editlpAlert, -200);
  87 + },
  88 + highlight : function(element) {
  89 + $(element).closest('.form-group').addClass('has-error');
  90 + },
  91 + unhighlight : function(element) {
  92 + $(element).closest('.form-group').removeClass('has-error');
  93 + },
  94 + success : function(label) {
  95 + label.closest('.form-group').removeClass('has-error');
  96 + },
  97 + submitHandler : function(f) {
  98 + // 1、 获取表单内容,并序列化
  99 + var params = form.serializeJSON();
  100 + var data = obj.getDataArray();
  101 + // 2、 调整路牌对应的班次总数
  102 + updFormParams(params,data);
  103 + // 删除图形.
  104 + $('svg.svg-chart').remove();
  105 + // 重新创建图形.
  106 + var graph_ = d3.select('#ganttSvg').relationshipGraph(obj.configuration);
  107 + // 根据数据重新渲染图形.
  108 + obj.data(data);
  109 + // 记录早操.并保存历史班次数据
  110 + obj.addHistory();
  111 + // 隐藏错误提示
  112 + editlpAlert.hide();
  113 + // 隐藏 reladplus_mobal 弹出层
  114 + $('#editlp_mobal').modal('hide');
  115 + layer.msg('修改路牌名称成功!');
  116 + }
  117 + });
  118 + function updFormParams(p,data) {
  119 + for(var i= 0;i<lpArray.length;i++) {
  120 + if(p[i+1] != undefined) {
  121 + if(lpArray[i].lpName != p[i+1]) {
  122 + for(var d = 0 ; d< data.length;d++) {
  123 + if(data[d].lpName == lpArray[i].lpName) {
  124 + data[d].lpName = p[i+1];
  125 + }
  126 +
  127 + }
  128 + lpArray[i].lpName = p[i+1];
  129 + obj.configuration.lpNameA[i] = p[i+1];
  130 + }
  131 + }
  132 + }
  133 + }
  134 +});
  135 +</script>
0 \ No newline at end of file 136 \ No newline at end of file
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
@@ -403,11 +403,12 @@ var BaseFun = function() { @@ -403,11 +403,12 @@ var BaseFun = function() {
403 } 403 }
404 //debugger; 404 //debugger;
405 var jar3 = baseF.dqbcsAndgs(bxrcgs,jar,dataMap,cara.length); 405 var jar3 = baseF.dqbcsAndgs(bxrcgs,jar,dataMap,cara.length);
406 - //return {'json':jar3,'bxrcgs':bxrcgs}; 406 + // return {'json':jar3,'bxrcgs':bxrcgs};
407 /*var jar4 = baseF.tzsmbcsj01( 407 /*var jar4 = baseF.tzsmbcsj01(
408 baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar3,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)), 408 baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar3,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)),
409 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);*/ 409 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);*/
410 var rsjar = baseF.tzsztest(cara,jar3,dataMap); 410 var rsjar = baseF.tzsztest(cara,jar3,dataMap);
  411 + // return {'json':rsjar,'bxrcgs':bxrcgs};
411 return {'json':baseF.addjcclcbc01(cara,rsjar,dataMap,saa,map),'bxrcgs':bxrcgs}; 412 return {'json':baseF.addjcclcbc01(cara,rsjar,dataMap,saa,map),'bxrcgs':bxrcgs};
412 }, 413 },
413 414
@@ -433,7 +434,6 @@ var BaseFun = function() { @@ -433,7 +434,6 @@ var BaseFun = function() {
433 // lpbc_.sort(function(a,b){return a.fcno-b.fcno}); 434 // lpbc_.sort(function(a,b){return a.fcno-b.fcno});
434 var tt = baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map); 435 var tt = baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map);
435 bcs = baseF.updfcno01(tt,bcs); 436 bcs = baseF.updfcno01(tt,bcs);
436 - // debugger;  
437 resultJA = resultJA.concat(tt); 437 resultJA = resultJA.concat(tt);
438 } 438 }
439 return resultJA; 439 return resultJA;
@@ -779,7 +779,11 @@ var BaseFun = function() { @@ -779,7 +779,11 @@ var BaseFun = function() {
779 sgbcfcsj.setMinutes(sgbcfcsj.getMinutes() - ar[r].bcsj); 779 sgbcfcsj.setMinutes(sgbcfcsj.getMinutes() - ar[r].bcsj);
780 ar[r].fcsj = baseF.getTimeStr(sgbcfcsj);*/ 780 ar[r].fcsj = baseF.getTimeStr(sgbcfcsj);*/
781 }else if(dxmin >= v1 && dxmin < 180) { 781 }else if(dxmin >= v1 && dxmin < 180) {
782 - dxmin = v1; 782 + if(r==ar.length-2 || baseF.issmbcsjArr(ar[r+1].fcsj,dataMap.smbcsjArr)) {
  783 + dxmin = dxmin;
  784 + }else {
  785 + dxmin = v1;
  786 + }
783 } 787 }
784 if(ar[r].STOPTIME >0) { 788 if(ar[r].STOPTIME >0) {
785 dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin); 789 dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin);
@@ -802,6 +806,7 @@ var BaseFun = function() { @@ -802,6 +806,7 @@ var BaseFun = function() {
802 if(bcArr.length<=0) 806 if(bcArr.length<=0)
803 return; 807 return;
804 var dirA = dataMap.dira; 808 var dirA = dataMap.dira;
  809 + var clzs = parseInt(dataMap.map.clzs);
805 for(var d = 0 ; d < dirA.length; d++) { 810 for(var d = 0 ; d < dirA.length; d++) {
806 var fxdm = dirA[d],fxbc = new Array(); 811 var fxdm = dirA[d],fxbc = new Array();
807 var cctag = baseF.dirDmToIndex(fxdm); 812 var cctag = baseF.dirDmToIndex(fxdm);
@@ -827,6 +832,10 @@ var BaseFun = function() { @@ -827,6 +832,10 @@ var BaseFun = function() {
827 var _fcjx = parseInt(Math.ceil(zzsj/bcCount)); 832 var _fcjx = parseInt(Math.ceil(zzsj/bcCount));
828 var fcnosj = new Date(kssj); 833 var fcnosj = new Date(kssj);
829 for(var l = 0 ; l< len_ ; l++) { 834 for(var l = 0 ; l< len_ ; l++) {
  835 + // 每个路牌的末班车发车时间不准动.
  836 + if(baseF.iszhclzsbc(fxbc, sjdbcArr[l].fcno , clzs)) {
  837 + continue;
  838 + }
830 sjdbcArr[l].fcsj = baseF.getTimeStr(fcnosj); 839 sjdbcArr[l].fcsj = baseF.getTimeStr(fcnosj);
831 var _xxsj = baseF.getxssj(dataMap.zgfsjd, 840 var _xxsj = baseF.getxssj(dataMap.zgfsjd,
832 dataMap.wgfsjd,fcnosj,dataMap.pcxssjArr, 841 dataMap.wgfsjd,fcnosj,dataMap.pcxssjArr,
@@ -845,6 +854,16 @@ var BaseFun = function() { @@ -845,6 +854,16 @@ var BaseFun = function() {
845 } 854 }
846 }, 855 },
847 856
  857 + iszhclzsbc : function(dirA , fcno , clzs) {
  858 + var flag = false;
  859 + for(var a =1 ; a < clzs ; a++) {
  860 + if(fcno == dirA[dirA.length-a].fcno) {
  861 + flag = true;
  862 + }
  863 + }
  864 + return flag;
  865 + },
  866 +
848 /** 867 /**
849 * @description : (TODO) 添加进出场班次、早晚例保班次. 868 * @description : (TODO) 添加进出场班次、早晚例保班次.
850 * 869 *
@@ -1896,14 +1915,13 @@ var BaseFun = function() { @@ -1896,14 +1915,13 @@ var BaseFun = function() {
1896 getsxAndxxbc : function(json,dataMap) { 1915 getsxAndxxbc : function(json,dataMap) {
1897 var upArray = new Array(),downArray = new Array(),qt = new Array(); 1916 var upArray = new Array(),downArray = new Array(),qt = new Array();
1898 for(var j = 0 ; j< json.length ; j++) { 1917 for(var j = 0 ; j< json.length ; j++) {
1899 - //json[j].fcint = baseF.getDateTime(json[j].fcsj).getTime();  
1900 if(json[j].bcType== dataMap.bcTypeArr.normal || 1918 if(json[j].bcType== dataMap.bcTypeArr.normal ||
1901 json[j].bcType== dataMap.bcTypeArr.region || 1919 json[j].bcType== dataMap.bcTypeArr.region ||
1902 json[j].bcType== dataMap.bcTypeArr.major || 1920 json[j].bcType== dataMap.bcTypeArr.major ||
1903 json[j].bcType== dataMap.bcTypeArr.venting) { 1921 json[j].bcType== dataMap.bcTypeArr.venting) {
1904 - if(json[j].xlDir == 'relationshipGraph-up') 1922 + if(json[j].xlDir == dataMap.dira[0])
1905 upArray.push(json[j]); 1923 upArray.push(json[j]);
1906 - else if(json[j].xlDir == 'relationshipGraph-down') 1924 + else if(json[j].xlDir == dataMap.dira[1])
1907 downArray.push(json[j]); 1925 downArray.push(json[j]);
1908 }else if(json[j].bcType == dataMap.bcTypeArr.cf) { 1926 }else if(json[j].bcType == dataMap.bcTypeArr.cf) {
1909 qt.push(json[j]); 1927 qt.push(json[j]);
src/main/resources/static/pages/base/timesmodel/js/d3.relationshipgraph.js
@@ -1288,34 +1288,44 @@ var RelationshipGraph = function () { @@ -1288,34 +1288,44 @@ var RelationshipGraph = function () {
1288 } 1288 }
1289 } 1289 }
1290 }, { 1290 }, {
  1291 + /**
  1292 + * 均匀发车间隙
  1293 + *
  1294 + */
1291 key : 'updownread01', 1295 key : 'updownread01',
1292 value : function updownread01() { 1296 value : function updownread01() {
1293 - // 1、获取所有班次数.  
1294 var list = $_GlobalGraph.getDataArray(); 1297 var list = $_GlobalGraph.getDataArray();
1295 var dataMap = $_GlobalGraph.configuration.dataMap; 1298 var dataMap = $_GlobalGraph.configuration.dataMap;
1296 - var rsmap = BaseFun.getsxAndxxbc(list,dataMap);  
1297 var cara = $_GlobalGraph.configuration.taskTypes; 1299 var cara = $_GlobalGraph.configuration.taskTypes;
1298 - var jar01 = rsmap.qt.concat(rsmap.sxbc).concat(rsmap.xxbc);  
1299 - BaseFun.jhfcjx01(jar01,dataMap);  
1300 - var jar = BaseFun.tzsmbcsj01(  
1301 - BaseFun.setbcsAndfcno(BaseFun.tzsmbcsj01(BaseFun.setbcsAndfcno(BaseFun.tzsztest(cara,jar01,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,dataMap.lbsj,dataMap)),  
1302 - dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,dataMap.lbsj,dataMap);  
1303 - var resultJA = new Array();  
1304 - for(var m = 0 ; m < cara.length; m++) {  
1305 - // 获取路牌编号.  
1306 - var lpNo_ = cara[m].lpNo;  
1307 - // 定义路牌下的所有班次.  
1308 - var lpbc_ = new Array();  
1309 - // 遍历班次数.  
1310 - for(var x =0 ; x <jar.length; x++) {  
1311 - // 判断当期遍历的班次是否属于当前的路牌.  
1312 - if(jar[x].lpNo == lpNo_)  
1313 - lpbc_.push(jar[x]);  
1314 - }  
1315 - // 按照发车序号顺序排序.  
1316 - lpbc_.sort(function(a,b){return a.fcno-b.fcno});  
1317 - resultJA = resultJA.concat(BaseFun.addjclbbc01(lpbc_,dataMap,dataMap.lbsj,dataMap.map));  
1318 - } 1300 + var bxrcgs = $_GlobalGraph.configuration.bxrcgs;
  1301 + var resultJA = new Array();
  1302 + if(list.length !=0 && dataMap!=null && dataMap!='' && cara.length !=0) {
  1303 + var rsmap = BaseFun.getsxAndxxbc(list,dataMap);
  1304 + var jar01 = rsmap.qt.concat(rsmap.sxbc).concat(rsmap.xxbc);
  1305 + BaseFun.jhfcjx01(jar01,dataMap);
  1306 + var jar = BaseFun.tzsmbcsj01(
  1307 + BaseFun.setbcsAndfcno(BaseFun.tzsmbcsj01(BaseFun.setbcsAndfcno(BaseFun.tzsztest(cara,jar01,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,dataMap.lbsj,dataMap)),
  1308 + dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,dataMap.lbsj,dataMap);
  1309 + for(var r = 0 ; r < bxrcgs.length; r++) {
  1310 + var lpNo = bxrcgs[r].lpNo;
  1311 + var gsv = 0 , bczs = 0;
  1312 + for(var g = 0 ; g< jar.length; g++) {
  1313 + if(jar[g].lpNo == lpNo) {
  1314 + gsv = gsv + jar[g].bcsj + jar[g].STOPTIME;
  1315 + bczs++;
  1316 + }
  1317 + }
  1318 + bxrcgs[r].sjgsV = gsv;
  1319 + bxrcgs[r].bczs = bczs;
  1320 + }
  1321 + var jar3 = BaseFun.dqbcsAndgs(bxrcgs,jar,dataMap,cara.length);
  1322 + var rsjar = BaseFun.tzsztest(cara,jar3,dataMap);
  1323 + resultJA = BaseFun.addjcclcbc01(cara,rsjar,dataMap,$_GlobalGraph.configuration.stopAraay,dataMap.map);
  1324 + } else {
  1325 + resultJA = list;
  1326 + error.show('参数异常!','【 list:' + list + ' , dataMap:'
  1327 + + dataMap + ' , cara:' + cara + ' , bxrcgs:' + bxrcgs + '】');
  1328 + }
1319 // 删除图形. 1329 // 删除图形.
1320 $('svg.svg-chart').remove(); 1330 $('svg.svg-chart').remove();
1321 // 重新创建图形. 1331 // 重新创建图形.
src/main/resources/static/pages/base/timesmodel/js/gantt.js
@@ -528,8 +528,15 @@ @@ -528,8 +528,15 @@
528 }else { 528 }else {
529 data = graph.getDataArray(); 529 data = graph.getDataArray();
530 } 530 }
  531 + var rsjar = BaseFun.tzsztest(graph.configuration.taskTypes,data,graph.configuration.dataMap);
  532 + /*var resultJA = BaseFun.addjcclcbc01(graph.configuration.taskTypes,rsjar,
  533 + graph.configuration.dataMap,graph.configuration.stopAraay,data,
  534 + graph.configuration.dataMap.map);*/
531 // 获取图形数据.重新绘制. 535 // 获取图形数据.重新绘制.
532 - graph.data(data); 536 + graph.data(BaseFun.addjcclcbc01(graph.configuration.taskTypes,rsjar,
  537 + graph.configuration.dataMap,
  538 + graph.configuration.stopAraay,
  539 + graph.configuration.dataMap.map));
533 // 记录当前操作. 540 // 记录当前操作.
534 graph.addHistory(); 541 graph.addHistory();
535 stateSuccess('删除'); 542 stateSuccess('删除');
src/main/resources/static/pages/base/timesmodel/tepms/bctype_temp.html
@@ -538,10 +538,10 @@ @@ -538,10 +538,10 @@
538 </select> 538 </select>
539 </div> 539 </div>
540 <div class="margin-top-10"> 540 <div class="margin-top-10">
541 - <input type="number" class="form-control" placeholder="请输入分配人次数" id="state_tagsinput_rcsvalue"> 541 + <input type="number" class="form-control" placeholder="请输入分配人次数" id="state_tagsinput_rcsvalue" min="1">
542 </div> 542 </div>
543 <div class="margin-top-10"> 543 <div class="margin-top-10">
544 - <input type="number" class="form-control" placeholder="请输入分配车辆数" id="state_tagsinput_clsvalue"> 544 + <input type="number" class="form-control" placeholder="请输入分配车辆数" id="state_tagsinput_clsvalue" min="1">
545 </div> 545 </div>
546 <div class="margin-top-10"> 546 <div class="margin-top-10">
547 <a href="javascript:;" class="btn red" id="state_tagsinput_add">添加</a> 547 <a href="javascript:;" class="btn red" id="state_tagsinput_add">添加</a>
src/main/resources/static/pages/forms/mould/firstAndLastBus_sum.xls
No preview for this file type
src/main/resources/static/pages/forms/mould/oilListMonth.xls 0 → 100644
No preview for this file type
src/main/resources/static/pages/forms/statement/firstAndLastBus.html
@@ -7,7 +7,8 @@ @@ -7,7 +7,8 @@
7 .table-bordered > tbody > tr > td, 7 .table-bordered > tbody > tr > td,
8 .table-bordered > tfoot > tr > th, 8 .table-bordered > tfoot > tr > th,
9 .table-bordered > tfoot > tr > td { 9 .table-bordered > tfoot > tr > td {
10 - border: 1px solid; } 10 + border: 1px solid;
  11 + text-align: center; }
11 .table-bordered > thead > tr > th, 12 .table-bordered > thead > tr > th,
12 .table-bordered > thead > tr > td { 13 .table-bordered > thead > tr > td {
13 border-bottom-width: 2px; } 14 border-bottom-width: 2px; }
@@ -250,7 +251,7 @@ @@ -250,7 +251,7 @@
250 <td>{{obj.company}}</td> 251 <td>{{obj.company}}</td>
251 <td>{{obj.subCompany}}</td> 252 <td>{{obj.subCompany}}</td>
252 <td>{{obj.line}}</td> 253 <td>{{obj.line}}</td>
253 - {{if obj.delayFirst0 != '/' && obj.delayFirst0 != '0'}} 254 + {{if obj.delayFirst0 != '/' && (obj.delayFirst0 > 1 || obj.delayFirst0 < -2)}}
254 <td style="background-color: #FF9999">{{obj.qdzFirst0}}</td> 255 <td style="background-color: #FF9999">{{obj.qdzFirst0}}</td>
255 <td style="background-color: #FF9999">{{obj.jhfcFirst0}}</td> 256 <td style="background-color: #FF9999">{{obj.jhfcFirst0}}</td>
256 <td style="background-color: #FF9999">{{obj.sjfcFirst0}}</td> 257 <td style="background-color: #FF9999">{{obj.sjfcFirst0}}</td>
@@ -261,7 +262,7 @@ @@ -261,7 +262,7 @@
261 <td>{{obj.sjfcFirst0}}</td> 262 <td>{{obj.sjfcFirst0}}</td>
262 <td>{{obj.delayFirst0}}</td> 263 <td>{{obj.delayFirst0}}</td>
263 {{/if}} 264 {{/if}}
264 - {{if obj.delayLast0 != '/' && obj.delayLast0 != '0'}} 265 + {{if obj.delayLast0 != '/' && (obj.delayLast0 > 1 || obj.delayLast0 < -2)}}
265 <td style="background-color: #FF9999">{{obj.qdzLast0}}</td> 266 <td style="background-color: #FF9999">{{obj.qdzLast0}}</td>
266 <td style="background-color: #FF9999">{{obj.jhfcLast0}}</td> 267 <td style="background-color: #FF9999">{{obj.jhfcLast0}}</td>
267 <td style="background-color: #FF9999">{{obj.sjfcLast0}}</td> 268 <td style="background-color: #FF9999">{{obj.sjfcLast0}}</td>
@@ -272,7 +273,7 @@ @@ -272,7 +273,7 @@
272 <td>{{obj.sjfcLast0}}</td> 273 <td>{{obj.sjfcLast0}}</td>
273 <td>{{obj.delayLast0}}</td> 274 <td>{{obj.delayLast0}}</td>
274 {{/if}} 275 {{/if}}
275 - {{if obj.delayFirst1 != '/' && obj.delayFirst1 != '0'}} 276 + {{if obj.delayFirst1 != '/' && (obj.delayFirst1 > 1 || obj.delayFirst1 < -2)}}
276 <td style="background-color: #FF9999">{{obj.qdzFirst1}}</td> 277 <td style="background-color: #FF9999">{{obj.qdzFirst1}}</td>
277 <td style="background-color: #FF9999">{{obj.jhfcFirst1}}</td> 278 <td style="background-color: #FF9999">{{obj.jhfcFirst1}}</td>
278 <td style="background-color: #FF9999">{{obj.sjfcFirst1}}</td> 279 <td style="background-color: #FF9999">{{obj.sjfcFirst1}}</td>
@@ -283,7 +284,7 @@ @@ -283,7 +284,7 @@
283 <td>{{obj.sjfcFirst1}}</td> 284 <td>{{obj.sjfcFirst1}}</td>
284 <td>{{obj.delayFirst1}}</td> 285 <td>{{obj.delayFirst1}}</td>
285 {{/if}} 286 {{/if}}
286 - {{if obj.delayLast1 != '/' && obj.delayLast1 != '0'}} 287 + {{if obj.delayLast1 != '/' && (obj.delayLast1 > 1 || obj.delayLast1 < -2)}}
287 <td style="background-color: #FF9999">{{obj.qdzLast1}}</td> 288 <td style="background-color: #FF9999">{{obj.qdzLast1}}</td>
288 <td style="background-color: #FF9999">{{obj.jhfcLast1}}</td> 289 <td style="background-color: #FF9999">{{obj.jhfcLast1}}</td>
289 <td style="background-color: #FF9999">{{obj.sjfcLast1}}</td> 290 <td style="background-color: #FF9999">{{obj.sjfcLast1}}</td>
src/main/resources/static/pages/forms/statement/firstAndLastBus_sum.html
@@ -7,7 +7,8 @@ @@ -7,7 +7,8 @@
7 .table-bordered > tbody > tr > td, 7 .table-bordered > tbody > tr > td,
8 .table-bordered > tfoot > tr > th, 8 .table-bordered > tfoot > tr > th,
9 .table-bordered > tfoot > tr > td { 9 .table-bordered > tfoot > tr > td {
10 - border: 1px solid; } 10 + border: 1px solid;
  11 + text-align: center; }
11 .table-bordered > thead > tr > th, 12 .table-bordered > thead > tr > th,
12 .table-bordered > thead > tr > td { 13 .table-bordered > thead > tr > td {
13 border-bottom-width: 2px; } 14 border-bottom-width: 2px; }
@@ -27,11 +28,11 @@ @@ -27,11 +28,11 @@
27 <div class="portlet light porttlet-fit bordered"> 28 <div class="portlet light porttlet-fit bordered">
28 <div class="portlet-title"> 29 <div class="portlet-title">
29 <form id="history" class="form-inline" action=""> 30 <form id="history" class="form-inline" action="">
30 - <div style="display: inline-block;margin-left: 10px;" id="company1"> 31 + <div style="display: inline-block;margin-left: 28px;" id="company1">
31 <span class="item-label" style="width: 80px;">公司: </span> 32 <span class="item-label" style="width: 80px;">公司: </span>
32 <select class="form-control" name="company" id="company" style="width: 160px;"></select> 33 <select class="form-control" name="company" id="company" style="width: 160px;"></select>
33 </div> 34 </div>
34 - <div style="display: inline-block;margin-left: 10px;" id="subCompany1"> 35 + <div style="display: inline-block;margin-left: 24px;" id="subCompany1">
35 <span class="item-label" style="width: 80px;">分公司: </span> 36 <span class="item-label" style="width: 80px;">分公司: </span>
36 <select class="form-control" name="subCompany" id="subCompany" style="width: 160px;"></select> 37 <select class="form-control" name="subCompany" id="subCompany" style="width: 160px;"></select>
37 </div> 38 </div>
@@ -39,11 +40,16 @@ @@ -39,11 +40,16 @@
39 <span class="item-label" style="width: 80px;">线路: </span> 40 <span class="item-label" style="width: 80px;">线路: </span>
40 <select class="form-control" name="line" id="line" style="width: 160px;"></select> 41 <select class="form-control" name="line" id="line" style="width: 160px;"></select>
41 </div> 42 </div>
  43 + <div style="margin-top: 10px"></div>
  44 + <div style="display: inline-block;margin-left: 0px;">
  45 + <span class="item-label" style="width: 80px;">开始时间: </span>
  46 + <input class="form-control" type="text" id="startDate" style="width: 160px;"/>
  47 + </div>
42 <div style="display: inline-block;margin-left: 10px;"> 48 <div style="display: inline-block;margin-left: 10px;">
43 - <span class="item-label" style="width: 80px;">时间: </span>  
44 - <input class="form-control" type="text" id="date" style="width: 160px;"/> 49 + <span class="item-label" style="width: 80px;">结束时间: </span>
  50 + <input class="form-control" type="text" id="endDate" style="width: 160px;"/>
45 </div> 51 </div>
46 - <div class="form-group"> 52 + <div class="form-group" style="margin-left: 10px;">
47 <input class="btn btn-default" type="button" id="query" value="筛选"/> 53 <input class="btn btn-default" type="button" id="query" value="筛选"/>
48 <input class="btn btn-default" type="button" id="export" value="导出"/> 54 <input class="btn btn-default" type="button" id="export" value="导出"/>
49 </div> 55 </div>
@@ -54,7 +60,7 @@ @@ -54,7 +60,7 @@
54 <table class="table table-bordered table-hover table-checkable" id="forms"> 60 <table class="table table-bordered table-hover table-checkable" id="forms">
55 <thead> 61 <thead>
56 <tr class="hidden"> 62 <tr class="hidden">
57 - <th>日期</th> 63 + <th width="240px">日期</th>
58 <th>公司</th> 64 <th>公司</th>
59 <th>分公司</th> 65 <th>分公司</th>
60 <th>线路</th> 66 <th>线路</th>
@@ -73,6 +79,7 @@ @@ -73,6 +79,7 @@
73 <thead> 79 <thead>
74 <tr class="hidden"> 80 <tr class="hidden">
75 <th style="display: none;"></th> 81 <th style="display: none;"></th>
  82 + <th rowspan="2">日期</th>
76 <th rowspan="2">线路</th> 83 <th rowspan="2">线路</th>
77 <th colspan="4">上行首发</th> 84 <th colspan="4">上行首发</th>
78 <th colspan="4">上行末发</th> 85 <th colspan="4">上行末发</th>
@@ -116,12 +123,12 @@ @@ -116,12 +123,12 @@
116 // 关闭左侧栏 123 // 关闭左侧栏
117 if (!$('body').hasClass('page-sidebar-closed')) 124 if (!$('body').hasClass('page-sidebar-closed'))
118 $('.menu-toggler.sidebar-toggler').click(); 125 $('.menu-toggler.sidebar-toggler').click();
119 -  
120 - $("#date").datetimepicker({ 126 +
  127 + $("#startDate,#endDate").datetimepicker({
121 format : 'YYYY-MM-DD', 128 format : 'YYYY-MM-DD',
122 locale : 'zh-cn' 129 locale : 'zh-cn'
123 }); 130 });
124 - 131 +
125 var d = new Date(); 132 var d = new Date();
126 var year = d.getFullYear(); 133 var year = d.getFullYear();
127 var month = d.getMonth() + 1; 134 var month = d.getMonth() + 1;
@@ -130,7 +137,7 @@ @@ -130,7 +137,7 @@
130 month = "0" + month; 137 month = "0" + month;
131 if(day < 10) 138 if(day < 10)
132 day = "0" + day; 139 day = "0" + day;
133 - $("#date").val(year + "-" + month + "-" + day); 140 + $("#startDate,#endDate").val(year + "-" + month + "-" + day);
134 141
135 var fage=false; 142 var fage=false;
136 var xlList; 143 var xlList;
@@ -216,9 +223,14 @@ @@ -216,9 +223,14 @@
216 var company = $("#company").val(); 223 var company = $("#company").val();
217 var subCompany = $("#subCompany").val(); 224 var subCompany = $("#subCompany").val();
218 var line = $("#line").val(); 225 var line = $("#line").val();
219 - var date = $("#date").val(); 226 + var startDate = $("#startDate").val();
  227 + var endDate = $("#endDate").val();
220 function jsDoQuery(pagination){ 228 function jsDoQuery(pagination){
221 - if($("#date").val() == null || $("#date").val().trim().length == 0){ 229 + if($("#startDate").val() == null || $("#startDate").val().trim().length == 0){
  230 + layer.msg("请选择时间!");
  231 + return;
  232 + }
  233 + if($("#endDate").val() == null || $("#endDate").val().trim().length == 0){
222 layer.msg("请选择时间!"); 234 layer.msg("请选择时间!");
223 return; 235 return;
224 } 236 }
@@ -226,14 +238,15 @@ @@ -226,14 +238,15 @@
226 company = $("#company").val(); 238 company = $("#company").val();
227 subCompany = $("#subCompany").val(); 239 subCompany = $("#subCompany").val();
228 line = $("#line").val(); 240 line = $("#line").val();
229 - date = $("#date").val(); 241 + startDate = $("#startDate").val();
  242 + endDate = $("#endDate").val();
230 if(line == " ") 243 if(line == " ")
231 line = ""; 244 line = "";
232 params['company'] = company; 245 params['company'] = company;
233 params['subCompany'] = subCompany; 246 params['subCompany'] = subCompany;
234 params['line'] = line; 247 params['line'] = line;
235 - params['line'] = line;  
236 - params['date'] = date; 248 + params['startDate'] = startDate;
  249 + params['endDate'] = endDate;
237 params['type'] = "query"; 250 params['type'] = "query";
238 $("#forms .hidden").removeClass("hidden"); 251 $("#forms .hidden").removeClass("hidden");
239 $("#map tr").addClass("hidden"); 252 $("#map tr").addClass("hidden");
@@ -253,19 +266,15 @@ @@ -253,19 +266,15 @@
253 } 266 }
254 267
255 $("#export").on("click",function(){ 268 $("#export").on("click",function(){
256 - if($("#date").val() == null || $("#date").val().trim().length == 0){  
257 - layer.msg("请选择时间!");  
258 - return;  
259 - }  
260 var params = {}; 269 var params = {};
261 params['company'] = company; 270 params['company'] = company;
262 params['subCompany'] = subCompany; 271 params['subCompany'] = subCompany;
263 params['line'] = line; 272 params['line'] = line;
264 - params['line'] = line;  
265 - params['date'] = date; 273 + params['startDate'] = startDate;
  274 + params['endDate'] = endDate;
266 params['type'] = "export"; 275 params['type'] = "export";
267 $get('/pcpc/firstAndLastBus_sum', params, function(result){ 276 $get('/pcpc/firstAndLastBus_sum', params, function(result){
268 - window.open("/downloadFile/download?fileName=线路首末班准点率"+moment(date).format("YYYYMMDD")); 277 + window.open("/downloadFile/download?fileName=线路首末班准点率"+moment(startDate).format("YYYYMMDD")+(startDate==endDate?"":("-"+moment(endDate).format("YYYYMMDD"))));
269 }); 278 });
270 }); 279 });
271 280
@@ -276,13 +285,20 @@ @@ -276,13 +285,20 @@
276 <script type="text/html" id="list_firstAndLastBus"> 285 <script type="text/html" id="list_firstAndLastBus">
277 {{each list as obj i}} 286 {{each list as obj i}}
278 <tr> 287 <tr>
279 - <td>{{obj.date}}</td>  
280 - <td>{{obj.company}}</td>  
281 - <td>{{obj.subCompany}}</td>  
282 - <td>{{obj.line}}</td>  
283 - <td>{{obj.jhbc}}</td>  
284 - <td>{{obj.sjbc}}</td>  
285 - <td><a id='delay'>{{obj.zdl}}</a></td> 288 + {{if obj.date != '合计汇总'}}
  289 + <td>{{obj.date}}</td>
  290 + <td>{{obj.company}}</td>
  291 + <td>{{obj.subCompany}}</td>
  292 + <td>{{obj.line}}</td>
  293 + <td>{{obj.jhbc}}</td>
  294 + <td>{{obj.sjbc}}</td>
  295 + <td><a id='delay'>{{obj.zdl}}</a></td>
  296 + {{else}}
  297 + <td colspan='4'>{{obj.date}}</td>
  298 + <td>{{obj.jhbc}}</td>
  299 + <td>{{obj.sjbc}}</td>
  300 + <td>{{obj.zdl}}</td>
  301 + {{/if}}
286 </tr> 302 </tr>
287 {{/each}} 303 {{/each}}
288 {{if list.length == 0}} 304 {{if list.length == 0}}
@@ -292,23 +308,26 @@ @@ -292,23 +308,26 @@
292 {{/if}} 308 {{/if}}
293 </script> 309 </script>
294 <script type="text/html" id="list_maps"> 310 <script type="text/html" id="list_maps">
  311 + {{each list as obj i}}
295 <tr> 312 <tr>
296 - <td>{{list.line}}</td>  
297 - <td>{{list.qdzFirst0}}</td>  
298 - <td>{{list.jhfcFirst0}}</td>  
299 - <td>{{list.sjfcFirst0}}</td>  
300 - <td>{{list.delayFirst0}}</td>  
301 - <td>{{list.qdzLast0}}</td>  
302 - <td>{{list.jhfcLast0}}</td>  
303 - <td>{{list.sjfcLast0}}</td>  
304 - <td>{{list.delayLast0}}</td>  
305 - <td>{{list.qdzFirst1}}</td>  
306 - <td>{{list.jhfcFirst1}}</td>  
307 - <td>{{list.sjfcFirst1}}</td>  
308 - <td>{{list.delayFirst1}}</td>  
309 - <td>{{list.qdzLast1}}</td>  
310 - <td>{{list.jhfcLast1}}</td>  
311 - <td>{{list.sjfcLast1}}</td>  
312 - <td>{{list.delayLast1}}</td> 313 + <td>{{obj.date}}</td>
  314 + <td>{{obj.line}}</td>
  315 + <td>{{obj.qdzFirst0}}</td>
  316 + <td>{{obj.jhfcFirst0}}</td>
  317 + <td>{{obj.sjfcFirst0}}</td>
  318 + <td>{{obj.delayFirst0}}</td>
  319 + <td>{{obj.qdzLast0}}</td>
  320 + <td>{{obj.jhfcLast0}}</td>
  321 + <td>{{obj.sjfcLast0}}</td>
  322 + <td>{{obj.delayLast0}}</td>
  323 + <td>{{obj.qdzFirst1}}</td>
  324 + <td>{{obj.jhfcFirst1}}</td>
  325 + <td>{{obj.sjfcFirst1}}</td>
  326 + <td>{{obj.delayFirst1}}</td>
  327 + <td>{{obj.qdzLast1}}</td>
  328 + <td>{{obj.jhfcLast1}}</td>
  329 + <td>{{obj.sjfcLast1}}</td>
  330 + <td>{{obj.delayLast1}}</td>
313 </tr> 331 </tr>
  332 + {{/each}}
314 </script> 333 </script>
315 \ No newline at end of file 334 \ No newline at end of file
src/main/resources/static/pages/forms/statement/historyMessage.html
@@ -46,7 +46,7 @@ @@ -46,7 +46,7 @@
46 </form> 46 </form>
47 </div> 47 </div>
48 <div class="portlet-body"> 48 <div class="portlet-body">
49 - <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> 49 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px;max-height: 520px;">
50 <table class="table table-bordered table-hover table-checkable" id="forms"> 50 <table class="table table-bordered table-hover table-checkable" id="forms">
51 <thead> 51 <thead>
52 <tr class="hidden"> 52 <tr class="hidden">
src/main/resources/static/pages/forms/statement/scheduleAnaly.html
@@ -7,7 +7,8 @@ @@ -7,7 +7,8 @@
7 .table-bordered > tbody > tr > td, 7 .table-bordered > tbody > tr > td,
8 .table-bordered > tfoot > tr > th, 8 .table-bordered > tfoot > tr > th,
9 .table-bordered > tfoot > tr > td { 9 .table-bordered > tfoot > tr > td {
10 - border: 1px solid; } 10 + border: 1px solid;
  11 + text-align: center; }
11 .table-bordered > thead > tr > th, 12 .table-bordered > thead > tr > th,
12 .table-bordered > thead > tr > td { 13 .table-bordered > thead > tr > td {
13 border-bottom-width: 2px; } 14 border-bottom-width: 2px; }
@@ -39,6 +40,14 @@ @@ -39,6 +40,14 @@
39 <span class="item-label" style="width: 80px;">线路: </span> 40 <span class="item-label" style="width: 80px;">线路: </span>
40 <select class="form-control" name="line" id="line" style="width: 160px;"></select> 41 <select class="form-control" name="line" id="line" style="width: 160px;"></select>
41 </div> 42 </div>
  43 + <div style="display: inline-block;margin-left: 10px;">
  44 + <span class="item-label" style="width: 80px;">班次类型: </span>
  45 + <select class="form-control" name="line" id="bcType" style="width: 160px;">
  46 + <option value="0">全部班次</option>
  47 + <option value="1">全程</option>
  48 + <option value="2">区间</option>
  49 + </select>
  50 + </div>
42 <div style="margin-top: 10px"></div> 51 <div style="margin-top: 10px"></div>
43 <div style="display: inline-block;margin-left: 10px;"> 52 <div style="display: inline-block;margin-left: 10px;">
44 <span class="item-label" style="width: 80px;">开始时间: </span> 53 <span class="item-label" style="width: 80px;">开始时间: </span>
@@ -54,7 +63,7 @@ @@ -54,7 +63,7 @@
54 <option value="">请选择...</option> 63 <option value="">请选择...</option>
55 </select> 64 </select>
56 </div> 65 </div>
57 - <div class="form-group"> 66 + <div class="form-group" style="margin-left: 10px">
58 <input class="btn btn-default" type="button" id="query" value="筛选"/> 67 <input class="btn btn-default" type="button" id="query" value="筛选"/>
59 <input class="btn btn-default" type="button" id="export" value="导出"/> 68 <input class="btn btn-default" type="button" id="export" value="导出"/>
60 </div> 69 </div>
@@ -202,6 +211,7 @@ @@ -202,6 +211,7 @@
202 var startDate = $("#startDate").val(); 211 var startDate = $("#startDate").val();
203 var endDate = $("#endDate").val(); 212 var endDate = $("#endDate").val();
204 var model = $("#model").val(); 213 var model = $("#model").val();
  214 + var bcType = $('#bcType').val();
205 var company = $("#company").val(); 215 var company = $("#company").val();
206 var subCompany = $("#subCompany").val(); 216 var subCompany = $("#subCompany").val();
207 function jsDoQuery(pagination){ 217 function jsDoQuery(pagination){
@@ -218,6 +228,7 @@ @@ -218,6 +228,7 @@
218 startDate = $("#startDate").val(); 228 startDate = $("#startDate").val();
219 endDate = $("#endDate").val(); 229 endDate = $("#endDate").val();
220 model = $("#model").val(); 230 model = $("#model").val();
  231 + bcType = $("#bcType").val();
221 company = $("#company").val(); 232 company = $("#company").val();
222 subCompany = $("#subCompany").val(); 233 subCompany = $("#subCompany").val();
223 params['page'] = page; 234 params['page'] = page;
@@ -225,6 +236,7 @@ @@ -225,6 +236,7 @@
225 params['startDate'] = startDate; 236 params['startDate'] = startDate;
226 params['endDate'] = endDate; 237 params['endDate'] = endDate;
227 params['model'] = model; 238 params['model'] = model;
  239 + params['bcType'] = bcType;
228 params['company'] = company; 240 params['company'] = company;
229 params['subCompany'] = subCompany; 241 params['subCompany'] = subCompany;
230 params['type'] = "query"; 242 params['type'] = "query";
@@ -274,12 +286,7 @@ @@ -274,12 +286,7 @@
274 line = ""; 286 line = "";
275 updateModel(); 287 updateModel();
276 }); 288 });
277 - $('#startDate').on("blur", function(){  
278 - startDate = $("#startDate").val();  
279 - endDate = $("#endDate").val();  
280 - updateModel();  
281 - });  
282 - $('#endDate').on("blur", function(){ 289 + $('#startDate, #endDate').on("blur", function(){
283 startDate = $("#startDate").val(); 290 startDate = $("#startDate").val();
284 endDate = $("#endDate").val(); 291 endDate = $("#endDate").val();
285 updateModel(); 292 updateModel();
src/main/resources/static/pages/forms/statement/scheduleDaily.html
@@ -7,7 +7,8 @@ @@ -7,7 +7,8 @@
7 .table-bordered > tbody > tr > td, 7 .table-bordered > tbody > tr > td,
8 .table-bordered > tfoot > tr > th, 8 .table-bordered > tfoot > tr > th,
9 .table-bordered > tfoot > tr > td { 9 .table-bordered > tfoot > tr > td {
10 - border: 1px solid; } 10 + border: 1px solid;
  11 + text-align: center; }
11 .table-bordered > thead > tr > th, 12 .table-bordered > thead > tr > th,
12 .table-bordered > thead > tr > td { 13 .table-bordered > thead > tr > td {
13 border-bottom-width: 2px; } 14 border-bottom-width: 2px; }
@@ -19,7 +20,7 @@ @@ -19,7 +20,7 @@
19 20
20 width: 5px; 21 width: 5px;
21 word-wrap: break-word; 22 word-wrap: break-word;
22 -letter-spacing: 20px; 23 +/* letter-spacing: 20px; */
23 } 24 }
24 25
25 #forms tr> td >label{ 26 #forms tr> td >label{
src/main/resources/static/pages/forms/statement/waybill.html
@@ -55,7 +55,7 @@ @@ -55,7 +55,7 @@
55 <div class="portlet-body"> 55 <div class="portlet-body">
56 <div class="row"> 56 <div class="row">
57 <div class="col-md-3"> 57 <div class="col-md-3">
58 - <div class="" style="margin-top: 10px;overflow:auto;height: 860px"> 58 + <div class="" style="margin-top: 10px;overflow:auto;height: 520px">
59 <table class="table table-bordered table-hover table-checkable pre-scrollable" id="info"> 59 <table class="table table-bordered table-hover table-checkable pre-scrollable" id="info">
60 <thead> 60 <thead>
61 <tr class="hidden"> 61 <tr class="hidden">
@@ -71,7 +71,7 @@ @@ -71,7 +71,7 @@
71 </div> 71 </div>
72 </div> 72 </div>
73 <div class="col-md-9" id="printArea"> 73 <div class="col-md-9" id="printArea">
74 - <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> 74 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px;height: 520px">
75 <table class="table table-bordered table-checkable" id="forms"> 75 <table class="table table-bordered table-checkable" id="forms">
76 <tbody class="ludan_1"> 76 <tbody class="ludan_1">
77 77
@@ -264,6 +264,7 @@ @@ -264,6 +264,7 @@
264 jName = params[0].split("\\")[0]; 264 jName = params[0].split("\\")[0];
265 jGh = params[0].split("\\")[1]; 265 jGh = params[0].split("\\")[1];
266 var id = params[3]; 266 var id = params[3];
  267 + var obj = $(this);
267 $get('/realSchedule/MapById',{id:id},function(result){ 268 $get('/realSchedule/MapById',{id:id},function(result){
268 result.scheduleDate = moment(result.scheduleDate).format("YYYY/MM/DD"); 269 result.scheduleDate = moment(result.scheduleDate).format("YYYY/MM/DD");
269 var ludan_1 = template('ludan_1',result); 270 var ludan_1 = template('ludan_1',result);
@@ -279,8 +280,11 @@ @@ -279,8 +280,11 @@
279 $get('/realSchedule/findKMBC',{jGh:jGh,clZbh:params[1],lpName:params[2],date:date,line:line},function(result){ 280 $get('/realSchedule/findKMBC',{jGh:jGh,clZbh:params[1],lpName:params[2],date:date,line:line},function(result){
280 var ludan_3 = template('ludan_3',result); 281 var ludan_3 = template('ludan_3',result);
281 $('#forms .ludan_3').html(ludan_3); 282 $('#forms .ludan_3').html(ludan_3);
  283 + $("#info tbody tr").css('background-color', '');
  284 + obj.css('background-color', '#99CCFF');
282 }); 285 });
283 286
  287 +
284 }); 288 });
285 289
286 $("#export").on("click",function(){ 290 $("#export").on("click",function(){
src/main/resources/static/pages/mforms/shifdays/shifday.html
@@ -104,6 +104,16 @@ $(function(){ @@ -104,6 +104,16 @@ $(function(){
104 format : 'YYYY-MM-DD', 104 format : 'YYYY-MM-DD',
105 locale : 'zh-cn' 105 locale : 'zh-cn'
106 }); 106 });
  107 + var d = new Date();
  108 + var year = d.getFullYear();
  109 + var month = d.getMonth() + 1;
  110 + var day = d.getDate();
  111 + if(month < 10)
  112 + month = "0" + month;
  113 + if(day < 10)
  114 + day = "0" + day;
  115 + $("#date").val(year + "-" + month + "-" + day);
  116 +
107 var fage=false; 117 var fage=false;
108 var obj = []; 118 var obj = [];
109 var xlList; 119 var xlList;
@@ -227,10 +237,14 @@ $(function(){ @@ -227,10 +237,14 @@ $(function(){
227 <script type="text/html" id="shifday"> 237 <script type="text/html" id="shifday">
228 {{each list as obj i}} 238 {{each list as obj i}}
229 <tr> 239 <tr>
230 - <td>{{obj.jName}}</td>  
231 - <td>{{obj.sName}}</td>  
232 - <td>{{obj.lpName}}</td>  
233 - <td>{{obj.carPlate}}</td> 240 + {{if obj.jName == '汇总合计'}}
  241 + <td colspan='4'>{{obj.jName}}</td>
  242 + {{else}}
  243 + <td>{{obj.jName}}</td>
  244 + <td>{{obj.sName}}</td>
  245 + <td>{{obj.lpName}}</td>
  246 + <td>{{obj.carPlate}}</td>
  247 + {{/if}}
234 <td>{{obj.jhlc}}</td> 248 <td>{{obj.jhlc}}</td>
235 <td>{{obj.sjjhlc}}</td> 249 <td>{{obj.sjjhlc}}</td>
236 <td>{{obj.yygl}}</td> 250 <td>{{obj.yygl}}</td>
src/main/resources/static/pages/mforms/shiftuehiclemanths/shiftuehiclemanth.html
1 -<style type="text/css">  
2 - .table-bordered {  
3 - border: 1px solid; }  
4 - .table-bordered > thead > tr > th,  
5 - .table-bordered > thead > tr > td,  
6 - .table-bordered > tbody > tr > th,  
7 - .table-bordered > tbody > tr > td,  
8 - .table-bordered > tfoot > tr > th,  
9 - .table-bordered > tfoot > tr > td {  
10 - border: 1px solid; }  
11 - .table-bordered > thead > tr > th,  
12 - .table-bordered > thead > tr > td {  
13 - border-bottom-width: 2px;  
14 - text-align: center; }  
15 -  
16 - .table > tbody + tbody {  
17 - border-top: 1px solid; }  
18 -</style>  
19 -  
20 -<div class="page-head">  
21 - <div class="page-title">  
22 - <h1>班次车辆人员月报表</h1>  
23 - </div>  
24 -</div> 1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid;
  11 + text-align: center; }
  12 + .table-bordered > thead > tr > th,
  13 + .table-bordered > thead > tr > td {
  14 + border-bottom-width: 2px;
  15 + text-align: center; }
  16 +
  17 + .table > tbody + tbody {
  18 + border-top: 1px solid; }
  19 +</style>
  20 +
  21 +<div class="page-head">
  22 + <div class="page-title">
  23 + <h1>班次车辆人员月报表</h1>
  24 + </div>
  25 +</div>
25 26
26 <div class="row"> 27 <div class="row">
27 <div class="col-md-12"> 28 <div class="col-md-12">
28 <div class="portlet light porttlet-fit bordered"> 29 <div class="portlet light porttlet-fit bordered">
29 <div class="portlet-title"> 30 <div class="portlet-title">
30 - <form class="form-inline" action="">  
31 - <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_manth">  
32 - <span class="item-label" style="width: 80px;">公司: </span>  
33 - <select class="form-control" name="company" id="gsdmManth" style="width: 140px;"></select>  
34 - </div>  
35 - <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_manth">  
36 - <span class="item-label" style="width: 80px;">分公司: </span>  
37 - <select class="form-control" name="subCompany" id="fgsdmManth" style="width: 140px;"></select> 31 + <form class="form-inline" action="">
  32 + <div style="display: inline-block; margin-left: 33px;" id="gsdmDiv_manth">
  33 + <span class="item-label" style="width: 80px;">公司: </span>
  34 + <select class="form-control" name="company" id="gsdmManth" style="width: 140px;"></select>
  35 + </div>
  36 + <div style="display: inline-block; margin-left: 24px;" id="fgsdmDiv_manth">
  37 + <span class="item-label" style="width: 80px;">分公司: </span>
  38 + <select class="form-control" name="subCompany" id="fgsdmManth" style="width: 140px;"></select>
38 </div> 39 </div>
39 - <div style="display: inline-block;margin-left: 10px">  
40 - <span class="item-label" style="width: 150px;">线路: </span>  
41 - <select class="form-control" name="line" id="line" style="width: 136px;"></select>  
42 - </div>  
43 - <div style="margin-top: 10px">  
44 -  
45 - </div>  
46 - <div style="display: inline-block;margin-left: 5px;">  
47 - <span class="item-label" style="width: 80px;">开始时间: </span>  
48 - <input class="form-control" type="text" id="startDate" style="width: 140px;"/>  
49 - </div>  
50 - <div style="display: inline-block;margin-left: 10px;">  
51 - <span class="item-label" style="width: 80px;">结束时间: </span>  
52 - <input class="form-control" type="text" id="endDate" style="width: 140px;"/>  
53 - </div>  
54 - <div style="display: inline-block;margin-left: 10px">  
55 - <span class="item-label" style="width: 80px;">统计: </span>  
56 - <select class="form-control" style="width: 136px;" id='empnames'>  
57 - <option value="驾驶员">驾驶员</option>  
58 - <option value="售票员">售票员</option>  
59 - <option value="车辆自编号">车辆自编号</option>  
60 - </select>  
61 - </div>  
62 - <div class="form-group">  
63 - <input class="btn btn-default" type="button" id="query" value="筛选"/>  
64 - <input class="btn btn-default" type="button" id="export" value="导出"/> 40 + <div style="display: inline-block;margin-left: 10px">
  41 + <span class="item-label" style="width: 150px;">线路: </span>
  42 + <select class="form-control" name="line" id="line" style="width: 136px;"></select>
  43 + </div>
  44 + <div style="margin-top: 10px">
  45 +
  46 + </div>
  47 + <div style="display: inline-block;margin-left: 5px;">
  48 + <span class="item-label" style="width: 80px;">开始时间: </span>
  49 + <input class="form-control" type="text" id="startDate" style="width: 140px;"/>
  50 + </div>
  51 + <div style="display: inline-block;margin-left: 10px;">
  52 + <span class="item-label" style="width: 80px;">结束时间: </span>
  53 + <input class="form-control" type="text" id="endDate" style="width: 140px;"/>
  54 + </div>
  55 + <div style="display: inline-block;margin-left: 10px">
  56 + <span class="item-label" style="width: 80px;">统计: </span>
  57 + <select class="form-control" style="width: 136px;" id='empnames'>
  58 + <option value="驾驶员">驾驶员</option>
  59 + <option value="售票员">售票员</option>
  60 + <option value="车辆自编号">车辆自编号</option>
  61 + </select>
  62 + </div>
  63 + <div class="form-group">
  64 + <input class="btn btn-default" type="button" id="query" value="筛选"/>
  65 + <input class="btn btn-default" type="button" id="export" value="导出"/>
65 </div> 66 </div>
66 </form> 67 </form>
67 </div> 68 </div>
68 <div class="portlet-body"> 69 <div class="portlet-body">
69 - <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">  
70 - <table class="table table-bordered table-hover table-checkable" id="forms">  
71 - <thead>  
72 - <tr>  
73 - <th>序号</th>  
74 - <th id='empname'>驾驶员</th>  
75 - <th>运营里程</th>  
76 - <th>空驶里程</th>  
77 - <th>抽减里程</th>  
78 - <th>增加里程</th>  
79 - <th>总里程</th>  
80 - <th>抽减班次</th>  
81 - <th>增加班次</th>  
82 - <th>实际班次</th>  
83 - </tr>  
84 - </thead>  
85 - <tbody>  
86 -  
87 - </tbody>  
88 - </table> 70 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  71 + <table class="table table-bordered table-hover table-checkable" id="forms">
  72 + <thead>
  73 + <tr>
  74 + <th>序号</th>
  75 + <th id='empname'>驾驶员</th>
  76 + <th>运营里程</th>
  77 + <th>空驶里程</th>
  78 + <th>抽减里程</th>
  79 + <th>增加里程</th>
  80 + <th>总里程</th>
  81 + <th>抽减班次</th>
  82 + <th>增加班次</th>
  83 + <th>实际班次</th>
  84 + </tr>
  85 + </thead>
  86 + <tbody>
  87 +
  88 + </tbody>
  89 + </table>
89 </div> 90 </div>
90 </div> 91 </div>
91 </div> 92 </div>
@@ -96,156 +97,165 @@ @@ -96,156 +97,165 @@
96 $(function(){ 97 $(function(){
97 // 关闭左侧栏 98 // 关闭左侧栏
98 if (!$('body').hasClass('page-sidebar-closed')) 99 if (!$('body').hasClass('page-sidebar-closed'))
99 - $('.menu-toggler.sidebar-toggler').click(); 100 + $('.menu-toggler.sidebar-toggler').click();
100 101
101 $("#startDate,#endDate").datetimepicker({ 102 $("#startDate,#endDate").datetimepicker({
102 format : 'YYYY-MM-DD', 103 format : 'YYYY-MM-DD',
103 locale : 'zh-cn' 104 locale : 'zh-cn'
104 - });  
105 - var fage=false;  
106 - var obj = [];  
107 - var xlList;  
108 - $.get('/report/lineList',function(result){  
109 - xlList=result;  
110 - $.get('/user/companyData', function(result){  
111 -  
112 - obj = result;  
113 - var options = '';  
114 - for(var i = 0; i < obj.length; i++){  
115 - options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';  
116 - }  
117 -  
118 - if(obj.length ==0){  
119 - $("#gsdmDiv_manth").css('display','none');  
120 - $('#fgsdmDiv_manth').css('display','none');  
121 - }else if(obj.length ==1){  
122 - $("#gsdmDiv_manth").css('display','none');  
123 - if(obj[0].children.length == 1 || obj[0].children.length ==0)  
124 - $('#fgsdmDiv_manth').css('display','none');  
125 - }  
126 - $('#gsdmManth').html(options);  
127 - updateCompany();  
128 - });  
129 - })  
130 - $("#gsdmManth").on("change",updateCompany);  
131 - function updateCompany(){  
132 - var company = $('#gsdmManth').val();  
133 - var options = '';  
134 - for(var i = 0; i < obj.length; i++){  
135 - if(obj[i].companyCode == company){  
136 - var children = obj[i].children;  
137 - for(var j = 0; j < children.length; j++){  
138 - options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';  
139 - }  
140 - }  
141 - }  
142 - $('#fgsdmManth').html(options);  
143 - initXl();  
144 - }  
145 - $("#fgsdmManth").on("change",initXl);  
146 - function initXl(){  
147 - var data=[];  
148 - if(fage){  
149 - $("#line").select2("destroy").html('');  
150 - }  
151 - var fgs=$('#fgsdmManth').val();  
152 - var gs=$('#gsdmManth').val();  
153 - for(var i=0;i<xlList.length;i++){  
154 - if(gs!=""){  
155 - if(fgs!=""){  
156 - if(xlList[i]["fgsbm"]==fgs && xlList[i]["gsbm"]==gs){  
157 - data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});  
158 - }  
159 - }else{  
160 - if(xlList[i]["gsbm"]==gs){  
161 - data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});  
162 - }  
163 - }  
164 - }  
165 - }  
166 - initPinYinSelect2('#line',data,'');  
167 - fage=true;  
168 - }  
169 - $("#query").on("click",function(){  
170 - if($("#startDate").val() == null || $("#startDate").val().trim().length == 0){  
171 - layer.msg("请选择时间范围!");  
172 - return;  
173 - }  
174 - if($("#endDate").val() == null || $("#endDate").val().trim().length == 0){  
175 - layer.msg("请选择时间范围!");  
176 - return;  
177 - }  
178 - $("#empname").html($("#empnames").val())  
179 - var params={};  
180 - params.empnames=$("#empnames").val();  
181 - params.line = $("#line").val();  
182 - params.startDate = $("#startDate").val();  
183 - params.endDate = $("#endDate").val();  
184 - params.lpName = $("#lpName").val();  
185 - params.gsdmManth= $("#gsdmManth").val();  
186 - params.fgsdmManth= $("#fgsdmManth").val();  
187 - $get("/mcy_forms/shiftuehiclemanth",params,function(result){  
188 - $("#sDate").text(startDate);  
189 - $("#eDate").text(endDate);  
190 - var temp = {};  
191 - var today_account = 0;  
192 - temp["line"] = $("#line").text();  
193 - $.each(result, function(i, obj) {  
194 - if(moment(obj.schedule_date_str).format("YYYY-MM-DD") == moment(obj.startDate).format("YYYY-MM-DD")){  
195 - today_account++;  
196 - }  
197 - obj.updateDate = moment(obj.startDate).format("YYYY-MM-DD HH:mm:ss");  
198 - });  
199 -  
200 - var list_shiftuehiclemanth = template('list_shiftuehiclemanth',{list:result});  
201 - // 把渲染好的模版html文本追加到表格中  
202 - $('#forms tbody').html(list_shiftuehiclemanth);  
203 -  
204 - });  
205 - });  
206 -  
207 - $("#export").on("click",function(){  
208 - var params={};  
209 - params.empnames=$("#empnames").val();  
210 - params.line = $("#line").val();  
211 - params.startDate = $("#startDate").val();  
212 - params.endDate = $("#endDate").val();  
213 - params.lpName = $("#lpName").val();  
214 - params.gsdmManth= $("#gsdmManth").val();  
215 - params.fgsdmManth= $("#fgsdmManth").val();  
216 - params.type='export';  
217 - $get('/mcy_export/shiftuehiclemanthExport',params,function(result){  
218 - window.open("/downloadFile/download?fileName=班次车辆人员月报表"+moment($("#startDate").val()).format("YYYYMMDD"));  
219 - });  
220 - }); 105 + });
  106 + var d = new Date();
  107 + var year = d.getFullYear();
  108 + var month = d.getMonth() + 1;
  109 + var day = d.getDate();
  110 + if(month < 10)
  111 + month = "0" + month;
  112 + if(day < 10)
  113 + day = "0" + day;
  114 + $("#startDate,#endDate").val(year + "-" + month + "-" + day);
  115 +
  116 + var fage=false;
  117 + var obj = [];
  118 + var xlList;
  119 + $.get('/report/lineList',function(result){
  120 + xlList=result;
  121 + $.get('/user/companyData', function(result){
  122 + obj = result;
  123 + var options = '';
  124 + for(var i = 0; i < obj.length; i++){
  125 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  126 + }
  127 +
  128 + if(obj.length ==0){
  129 + $("#gsdmDiv_manth").css('display','none');
  130 + $('#fgsdmDiv_manth').css('display','none');
  131 + }else if(obj.length ==1){
  132 + $("#gsdmDiv_manth").css('display','none');
  133 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  134 + $('#fgsdmDiv_manth').css('display','none');
  135 + }
  136 + $('#gsdmManth').html(options);
  137 + updateCompany();
  138 + });
  139 + })
  140 + $("#gsdmManth").on("change",updateCompany);
  141 + function updateCompany(){
  142 + var company = $('#gsdmManth').val();
  143 + var options = '';
  144 + for(var i = 0; i < obj.length; i++){
  145 + if(obj[i].companyCode == company){
  146 + var children = obj[i].children;
  147 + for(var j = 0; j < children.length; j++){
  148 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  149 + }
  150 + }
  151 + }
  152 + $('#fgsdmManth').html(options);
  153 + initXl();
  154 + }
  155 + $("#fgsdmManth").on("change",initXl);
  156 + function initXl(){
  157 + var data=[];
  158 + if(fage){
  159 + $("#line").select2("destroy").html('');
  160 + }
  161 + var fgs=$('#fgsdmManth').val();
  162 + var gs=$('#gsdmManth').val();
  163 + for(var i=0;i<xlList.length;i++){
  164 + if(gs!=""){
  165 + if(fgs!=""){
  166 + if(xlList[i]["fgsbm"]==fgs && xlList[i]["gsbm"]==gs){
  167 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  168 + }
  169 + }else{
  170 + if(xlList[i]["gsbm"]==gs){
  171 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  172 + }
  173 + }
  174 + }
  175 + }
  176 + initPinYinSelect2('#line',data,'');
  177 + fage=true;
  178 + }
  179 + $("#query").on("click",function(){
  180 + if($("#startDate").val() == null || $("#startDate").val().trim().length == 0){
  181 + layer.msg("请选择时间范围!");
  182 + return;
  183 + }
  184 + if($("#endDate").val() == null || $("#endDate").val().trim().length == 0){
  185 + layer.msg("请选择时间范围!");
  186 + return;
  187 + }
  188 + $("#empname").html($("#empnames").val())
  189 + var params={};
  190 + params.empnames=$("#empnames").val();
  191 + params.line = $("#line").val();
  192 + params.startDate = $("#startDate").val();
  193 + params.endDate = $("#endDate").val();
  194 + params.lpName = $("#lpName").val();
  195 + params.gsdmManth= $("#gsdmManth").val();
  196 + params.fgsdmManth= $("#fgsdmManth").val();
  197 + $get("/mcy_forms/shiftuehiclemanth",params,function(result){
  198 + $("#sDate").text(startDate);
  199 + $("#eDate").text(endDate);
  200 + var temp = {};
  201 + var today_account = 0;
  202 + temp["line"] = $("#line").text();
  203 + $.each(result, function(i, obj) {
  204 + if(moment(obj.schedule_date_str).format("YYYY-MM-DD") == moment(obj.startDate).format("YYYY-MM-DD")){
  205 + today_account++;
  206 + }
  207 + obj.updateDate = moment(obj.startDate).format("YYYY-MM-DD HH:mm:ss");
  208 + });
  209 +
  210 + var list_shiftuehiclemanth = template('list_shiftuehiclemanth',{list:result});
  211 + // 把渲染好的模版html文本追加到表格中
  212 + $('#forms tbody').html(list_shiftuehiclemanth);
  213 +
  214 + });
  215 + });
  216 +
  217 + $("#export").on("click",function(){
  218 + var params={};
  219 + params.empnames=$("#empnames").val();
  220 + params.line = $("#line").val();
  221 + params.startDate = $("#startDate").val();
  222 + params.endDate = $("#endDate").val();
  223 + params.lpName = $("#lpName").val();
  224 + params.gsdmManth= $("#gsdmManth").val();
  225 + params.fgsdmManth= $("#fgsdmManth").val();
  226 + params.type='export';
  227 + $get('/mcy_export/shiftuehiclemanthExport',params,function(result){
  228 + window.open("/downloadFile/download?fileName=班次车辆人员月报表"+moment($("#startDate").val()).format("YYYYMMDD"));
  229 + });
  230 + });
221 231
222 - });  
223 -  
224 -// $("#empnames").change(function(){  
225 -// $("#empname").html($("#empnames").val())  
226 -// // $("#query").click();  
227 -  
228 -// }); 232 + });
  233 +
  234 +// $("#empnames").change(function(){
  235 +// $("#empname").html($("#empnames").val())
  236 +// // $("#query").click();
  237 +
  238 +// });
229 239
230 </script> 240 </script>
231 <script type="text/html" id="list_shiftuehiclemanth"> 241 <script type="text/html" id="list_shiftuehiclemanth">
232 {{each list as obj i}} 242 {{each list as obj i}}
233 - <tr> 243 + <tr>
234 <td>{{i+1}}</td> 244 <td>{{i+1}}</td>
235 - <td>{{obj.jName}}</td>  
236 - <td>{{obj.jhlc}}</td>  
237 - <td>{{obj.emptMileage}}</td>  
238 - <td>{{obj.remMileage}}</td>  
239 - <td>{{obj.addMileage}}</td>  
240 - <td>{{obj.totalm}}</td>  
241 - <td>{{obj.cjbc}}</td>  
242 - <td>{{obj.ljbc}}</td> 245 + <td>{{obj.jName}}</td>
  246 + <td>{{obj.jhlc}}</td>
  247 + <td>{{obj.emptMileage}}</td>
  248 + <td>{{obj.remMileage}}</td>
  249 + <td>{{obj.addMileage}}</td>
  250 + <td>{{obj.totalm}}</td>
  251 + <td>{{obj.cjbc}}</td>
  252 + <td>{{obj.ljbc}}</td>
243 <td>{{obj.sjbc}}</td> 253 <td>{{obj.sjbc}}</td>
244 </tr> 254 </tr>
245 - {{/each}}  
246 - {{if list.length == 0}}  
247 - <tr>  
248 - <td colspan="10"><h6 class="muted">没有找到相关数据</h6></td>  
249 - </tr> 255 + {{/each}}
  256 + {{if list.length == 0}}
  257 + <tr>
  258 + <td colspan="10"><h6 class="muted">没有找到相关数据</h6></td>
  259 + </tr>
250 {{/if}} 260 {{/if}}
251 </script> 261 </script>
252 \ No newline at end of file 262 \ No newline at end of file
src/main/resources/static/pages/report/oil/oilListMonth.html
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 </div> 37 </div>
38 <div class="form-group"> 38 <div class="form-group">
39 <input class="btn btn-default" type="button" id="query" value="查询"/> 39 <input class="btn btn-default" type="button" id="query" value="查询"/>
40 -<!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> 40 + <input class="btn btn-default" type="button" id="export" value="导出"/>
41 </div> 41 </div>
42 </form> 42 </form>
43 </div> 43 </div>
@@ -115,18 +115,36 @@ @@ -115,18 +115,36 @@
115 initPinYinSelect2('#line',data,''); 115 initPinYinSelect2('#line',data,'');
116 116
117 }) 117 })
  118 +
118 //查询 119 //查询
119 $("#query").on('click',function(){ 120 $("#query").on('click',function(){
  121 + if($("#date").val() == null || $("#date").val().trim().length == 0){
  122 + layer.msg("请选择日期!");
  123 + return;
  124 + }
120 var line = $("#line").val(); 125 var line = $("#line").val();
121 var date = $("#date").val(); 126 var date = $("#date").val();
122 - $get('/ylb/oilListMonth',{line:line,date:date},function(result){  
123 - $.each(result, function(i, obj) {  
124 - obj.rq = moment(obj.rq).format("DD");  
125 - }); 127 + $get('/ylb/oilListMonth',{line:line,date:date,type:'query'},function(result){
  128 +// $.each(result, function(i, obj) {
  129 +// obj.rq = moment(obj.rq).format("DD");
  130 +// });
126 var oilListMonth = template('oilListMonth',{list:result}); 131 var oilListMonth = template('oilListMonth',{list:result});
127 $('#forms tbody').html(oilListMonth); 132 $('#forms tbody').html(oilListMonth);
128 }); 133 });
129 }); 134 });
  135 +
  136 + //导出
  137 + $("#export").on("click",function(){
  138 + if($("#date").val() == null || $("#date").val().trim().length == 0){
  139 + layer.msg("请选择日期!");
  140 + return;
  141 + }
  142 + var line = $("#line").val();
  143 + var date = $("#date").val();
  144 + $get('/ylb/oilListMonth', {line:line,date:date,type:'export'}, function(result){
  145 + window.open("/downloadFile/download?fileName=月存油报表"+moment(date).format("YYYYMMDD"));
  146 + });
  147 + });
130 }); 148 });
131 </script> 149 </script>
132 <script type="text/html" id="oilListMonth"> 150 <script type="text/html" id="oilListMonth">