Commit 57b395ef107e15c99b641eb878c92f2b78039bde

Authored by 潘钊
2 parents 3684c9fb e367d1c5

Merge branch 'minhang' of http://222.66.0.204:8090/panzhaov5/bsth_control into minhang

# Conflicts:
#	src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v2/main.html
Showing 25 changed files with 1153 additions and 669 deletions
@@ -237,6 +237,27 @@ @@ -237,6 +237,27 @@
237 <version>1.13</version> 237 <version>1.13</version>
238 </dependency> 238 </dependency>
239 239
  240 + <dependency>
  241 + <groupId>org.dbunit</groupId>
  242 + <artifactId>dbunit</artifactId>
  243 + <version>2.4.9</version>
  244 + <scope>test</scope>
  245 +
  246 + <exclusions>
  247 + <exclusion>
  248 + <groupId>org.slf4j</groupId>
  249 + <artifactId>slf4j-api</artifactId>
  250 + </exclusion>
  251 + </exclusions>
  252 + </dependency>
  253 +
  254 + <dependency>
  255 + <groupId>com.h2database</groupId>
  256 + <artifactId>h2</artifactId>
  257 + <version>1.2.132</version>
  258 + <scope>test</scope>
  259 + </dependency>
  260 +
240 </dependencies> 261 </dependencies>
241 262
242 <dependencyManagement> 263 <dependencyManagement>
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -369,8 +369,35 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -369,8 +369,35 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
369 } 369 }
370 370
371 @RequestMapping(value="/statisticsDailyTj") 371 @RequestMapping(value="/statisticsDailyTj")
372 - public List<Map<String,Object>> statisticsDailyTj(@RequestParam String gsdm,@RequestParam String fgsdm, @RequestParam String line, @RequestParam String date,  
373 - @RequestParam String date2,@RequestParam String xlName, @RequestParam String type){ 372 + public List<Map<String,Object>> statisticsDailyTj(@RequestParam Map<String, Object> map){
  373 + String gsdm="";
  374 + if(map.get("gsdm")!=null){
  375 + gsdm=map.get("gsdm").toString();
  376 + }
  377 + String fgsdm="";
  378 + if(map.get("fgsdm")!=null){
  379 + fgsdm=map.get("fgsdm").toString();
  380 + }
  381 + String line="";
  382 + if(map.get("line")!=null){
  383 + line=map.get("line").toString();
  384 + }
  385 + String date="";
  386 + if(map.get("date")!=null){
  387 + date=map.get("date").toString();
  388 + }
  389 + String date2="";
  390 + if(map.get("date2")!=null){
  391 + date2=map.get("date2").toString();
  392 + }
  393 + String xlName="";
  394 + if(map.get("xlName")!=null){
  395 + xlName=map.get("xlName").toString();
  396 + }
  397 + String type="";
  398 + if(map.get("type")!=null){
  399 + type=map.get("type").toString();
  400 + }
374 return scheduleRealInfoService.statisticsDailyTj(gsdm,fgsdm,line, date,date2, xlName, type); 401 return scheduleRealInfoService.statisticsDailyTj(gsdm,fgsdm,line, date,date2, xlName, type);
375 } 402 }
376 403
src/main/java/com/bsth/data/schedule/thread/CalcOilThread.java
1 package com.bsth.data.schedule.thread; 1 package com.bsth.data.schedule.thread;
2 2
  3 +import com.bsth.service.oil.DlbService;
3 import com.bsth.data.safe_driv.SafeDrivCenter; 4 import com.bsth.data.safe_driv.SafeDrivCenter;
4 import com.bsth.service.oil.YlbService; 5 import com.bsth.service.oil.YlbService;
5 import org.slf4j.Logger; 6 import org.slf4j.Logger;
@@ -16,7 +17,8 @@ public class CalcOilThread extends Thread{ @@ -16,7 +17,8 @@ public class CalcOilThread extends Thread{
16 17
17 @Autowired 18 @Autowired
18 YlbService ylbService; 19 YlbService ylbService;
19 - 20 + @Autowired
  21 + DlbService dlbService;
20 Logger logger = LoggerFactory.getLogger(this.getClass()); 22 Logger logger = LoggerFactory.getLogger(this.getClass());
21 23
22 @Override 24 @Override
@@ -24,6 +26,7 @@ public class CalcOilThread extends Thread{ @@ -24,6 +26,7 @@ public class CalcOilThread extends Thread{
24 try{ 26 try{
25 logger.info("开始计算路单里程加注量...."); 27 logger.info("开始计算路单里程加注量....");
26 ylbService.obtainDsq(); 28 ylbService.obtainDsq();
  29 + dlbService.obtainDsq();
27 logger.info("计算路单里程加注量结束!"); 30 logger.info("计算路单里程加注量结束!");
28 31
29 //清除安全驾驶数据 先临时蹭这个线程 32 //清除安全驾驶数据 先临时蹭这个线程
src/main/java/com/bsth/service/oil/DlbService.java
@@ -18,4 +18,6 @@ public interface DlbService extends BaseService&lt;Dlb, Integer&gt;{ @@ -18,4 +18,6 @@ public interface DlbService extends BaseService&lt;Dlb, Integer&gt;{
18 Map<String, Object> sumYlb(Map<String, Object> map); 18 Map<String, Object> sumYlb(Map<String, Object> map);
19 19
20 Map<String, Object> saveDlbList(Map<String, Object> map) throws Exception; 20 Map<String, Object> saveDlbList(Map<String, Object> map) throws Exception;
  21 +
  22 + String obtainDsq() throws Exception;
21 } 23 }
src/main/java/com/bsth/service/oil/impl/DlbServiceImpl.java
@@ -6,6 +6,7 @@ import java.text.DecimalFormat; @@ -6,6 +6,7 @@ import java.text.DecimalFormat;
6 import java.text.ParseException; 6 import java.text.ParseException;
7 import java.text.SimpleDateFormat; 7 import java.text.SimpleDateFormat;
8 import java.util.ArrayList; 8 import java.util.ArrayList;
  9 +import java.util.Calendar;
9 import java.util.Date; 10 import java.util.Date;
10 import java.util.HashMap; 11 import java.util.HashMap;
11 import java.util.Iterator; 12 import java.util.Iterator;
@@ -70,8 +71,144 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS @@ -70,8 +71,144 @@ public class DlbServiceImpl extends BaseServiceImpl&lt;Dlb,Integer&gt; implements DlbS
70 JdbcTemplate jdbcTemplate; 71 JdbcTemplate jdbcTemplate;
71 72
72 Logger logger = LoggerFactory.getLogger(this.getClass()); 73 Logger logger = LoggerFactory.getLogger(this.getClass());
  74 +
  75 + @Transactional
  76 + @Override
  77 + public String obtainDsq() throws Exception{
  78 + String result = "failure";
  79 + List<Cars> carsList=carsRepository.findCars();
  80 + Map<String, Boolean> carsMap=new HashMap<String, Boolean>();
  81 + for (int i = 0; i < carsList.size(); i++) {
  82 + Cars c=carsList.get(i);
  83 + carsMap.put(c.getInsideCode(), c.getSfdc());
  84 + }
  85 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  86 + Date dNow = new Date(); //当前时间
  87 + Date dBefore = new Date();
  88 + Calendar calendar = Calendar.getInstance(); //得到日历
  89 + calendar.setTime(dNow);//把当前时间赋给日历
  90 + calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天
  91 + dBefore = calendar.getTime(); //得到前一天的时间
  92 + String rq=sdf.format(dBefore);
  93 + String line="";
  94 + //保留两位小数
  95 + DecimalFormat df = new DecimalFormat("#.00");
  96 + // TODO Auto-generated method stub
  97 + Map<String, Object> newMap=new HashMap<String,Object>();
  98 + //当天DLB信息
  99 + List<Dlb> dlList=repository.obtainDl(rq, "", "", line, "", "nbbm");
  100 + //当天YLXXB信息
  101 + List<Ylxxb> ylxxList=ylxxbRepository.obtainYlxx(rq,1,"");
  102 + //当天加电信息表
  103 + List<Jdl> jdlList=jdlRepository.JdlList(rq);
  104 + //前一天所有车辆最后进场班次信息
  105 + List<Dlb> dlListBe=repository.obtainYlbefore(rq, "", "", "", "");
  106 + List<Cdl> cdyList=cdlRepository.obtainCdl();
  107 + //从排班表中计算出行驶的总里程
  108 + List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList(line,rq,"","","","");
  109 + List<Ylb> addList=new ArrayList<Ylb>();
  110 + List<Ylb> updateList=new ArrayList<Ylb>();
  111 + for(int x=0;x<listpb.size();x++){
  112 + String type="add";
  113 + boolean sfdc=false;
  114 + Map<String, Object> map=listpb.get(x);
  115 + if (carsMap.get(map.get("clZbh").toString())!=null) {
  116 + sfdc= carsMap.get(map.get("clZbh").toString());
  117 + }else{
  118 + sfdc=false;
  119 + }
  120 + if(sfdc){
  121 + //判断驾驶员驾驶的该车辆是否已经存入了(查出的结果集中日期是相同的,根据驾驶员、内部编号、线路编码判断)
  122 + Dlb t=new Dlb();
  123 + for(int k=0;k<dlList.size();k++){
  124 + Dlb t1=dlList.get(k);
  125 + if(t1.getNbbm().equals(map.get("clZbh").toString())
  126 + &&t1.getJsy().equals(map.get("jGh").toString())
  127 + &&t1.getXlbm().equals(map.get("xlBm").toString()))
  128 + {
  129 + t=t1;
  130 + type="update";
  131 + }
  132 + }
  133 + try {
  134 + //当日的第一个班次,出场油量等于前一天的最后一个班次的进场油量
  135 + Double jzl=0.0;
  136 + if(map.get("seqNumber").toString().equals("1")){
  137 + boolean fage=true;
  138 + for (int i = 0; i < dlListBe.size(); i++) {
  139 + Dlb dlb=dlListBe.get(i);
  140 + if(map.get("clZbh").toString().equals(dlb.getNbbm())){
  141 + t.setCzcd(dlb.getJzcd());
  142 + fage=false;
  143 + break;
  144 + }
  145 + }
  146 + if(fage){
  147 + for (int y = 0; y < cdyList.size(); y++) {
  148 + Cdl cdl=cdyList.get(y);
  149 + if(map.get("clZbh").toString().equals(cdl.getNbbm())){
  150 + t.setCzcd(cdl.getClcd()==null?0:cdl.getClcd());
  151 + fage=false;
  152 + break;
  153 + }
  154 + }
  155 + }
  156 + if(fage){
  157 + t.setCzcd(0.0);
  158 + }
  159 +
  160 + //手动导入没有驾驶员工号
  161 + for (int i = 0; i < jdlList.size(); i++) {
  162 + Jdl jdl=jdlList.get(i);
  163 + if(map.get("clZbh").toString().equals(jdl.getNbbm()) ){
  164 + jzl+=jdl.getJdl();
  165 + }
  166 + }
  167 + }
  168 +
  169 +
  170 + //把当天的YLXXB的加注量设置为当天YLB的加注量(根据车号,驾驶员判断)
  171 + for(int j=0;j<ylxxList.size();j++){
  172 + Ylxxb ylxxb= ylxxList.get(j);
  173 + if(map.get("clZbh").toString().equals(ylxxb.getNbbm()) &&map.get("jGh").toString().equals(ylxxb.getJsy())){
  174 + jzl+=ylxxb.getJzl();
  175 + }
  176 + }
  177 +
  178 + t.setCdl(jzl);
  179 + if(type.equals("add")){
  180 + t.setHd(jzl);
  181 + t.setJzcd(t.getCzcd());
  182 + }
  183 +
  184 + t.setNbbm(map.get("clZbh").toString());
  185 + t.setJsy(map.get("jGh")==null?"":map.get("jGh").toString());
  186 + t.setZlc(map.get("totalKilometers")==null?0.0:Double.parseDouble(df.format(Double.parseDouble(map.get("totalKilometers").toString()))));
  187 + t.setXlbm(map.get("xlBm")==null?"":map.get("xlBm").toString());
  188 + t.setJcsx(Integer.parseInt(map.get("seqNumber").toString()));
  189 + t.setSsgsdm(map.get("company")==null?"":map.get("company").toString());
  190 + t.setFgsdm(map.get("bCompany")==null?"":map.get("bCompany").toString());
  191 + t.setJhsj(map.get("fcsj")==null?"":map.get("fcsj").toString());
  192 + t.setRq(sdf.parse(rq));
  193 + t.setCreatetime(new Date());
  194 + /*if(type.equals("add")){
  195 + addList.add(t);
  196 + }else{
  197 + updateList.add(t);
  198 + }*/
  199 + repository.save(t);
  200 + newMap.put("status", ResponseCode.SUCCESS);
  201 + } catch (ParseException e) {
  202 + // TODO Auto-generated catch block
  203 + newMap.put("status", ResponseCode.ERROR);
  204 + e.printStackTrace();
  205 + }
  206 + }
  207 + }
  208 + return result;
  209 + }
73 /** 210 /**
74 - * 获取进存信息 211 + * 获取进存信息
75 * @Transactional 回滚事物 212 * @Transactional 回滚事物
76 */ 213 */
77 @Transactional 214 @Transactional
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
@@ -172,7 +172,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -172,7 +172,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
172 t.setJzl(jzl);*/ 172 t.setJzl(jzl);*/
173 t.setNbbm(map.get("clZbh").toString()); 173 t.setNbbm(map.get("clZbh").toString());
174 t.setJsy(map.get("jGh")==null?"":map.get("jGh").toString()); 174 t.setJsy(map.get("jGh")==null?"":map.get("jGh").toString());
175 - t.setZlc(map.get("totalKilometers")==null?0.0:Double.parseDouble(df.format(Double.parseDouble(map.get("totalKilometers").toString())))); 175 + t.setZlc(map.get("totalKilometers")==null?0.0:Double.parseDouble(map.get("totalKilometers").toString()));
176 t.setXlbm(map.get("xlBm")==null?"":map.get("xlBm").toString()); 176 t.setXlbm(map.get("xlBm")==null?"":map.get("xlBm").toString());
177 t.setJcsx(Integer.parseInt(map.get("seqNumber").toString())); 177 t.setJcsx(Integer.parseInt(map.get("seqNumber").toString()));
178 t.setSsgsdm(map.get("company")==null?"":map.get("company").toString()); 178 t.setSsgsdm(map.get("company")==null?"":map.get("company").toString());
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -581,62 +581,20 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -581,62 +581,20 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
581 List<Iterator<?>> list = new ArrayList<Iterator<?>>(); 581 List<Iterator<?>> list = new ArrayList<Iterator<?>>();
582 List<ScheduleRealInfo> scheduleRealInfos = scheduleRealInfoRepository.queryListWaybill(jName, clZbh, lpName, date, line); 582 List<ScheduleRealInfo> scheduleRealInfos = scheduleRealInfoRepository.queryListWaybill(jName, clZbh, lpName, date, line);
583 List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>(); 583 List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
584 - 584 +// List<ScheduleRealInfo> scheduleRealInfos=scheduleRealInfoRepository.queryListWaybillXcld(jName, clZbh, lpName, date, line);
  585 + List<ScheduleRealInfo> lists=new ArrayList<ScheduleRealInfo>();
  586 + for (int i = 0; i < scheduleRealInfos.size(); i++) {
  587 + ScheduleRealInfo s=scheduleRealInfos.get(i);
  588 + if(s.getZdsjActual()!=null){
  589 + lists.add(s);
  590 + }
  591 + }
585 DecimalFormat format = new DecimalFormat("0.00"); 592 DecimalFormat format = new DecimalFormat("0.00");
586 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName); 593 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName);
587 // int ljbc = scheduleRealInfoRepository.findLjbc(jName, clZbh, lpName); 594 // int ljbc = scheduleRealInfoRepository.findLjbc(jName, clZbh, lpName);
588 - int jhbc = 0, cjbc = 0, ljbc = 0;  
589 - double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0;  
590 - float addMileage = 0l, remMileage = 0l;  
591 595
592 Map<String, Object> map; 596 Map<String, Object> map;
593 for (ScheduleRealInfo scheduleRealInfo : scheduleRealInfos) { 597 for (ScheduleRealInfo scheduleRealInfo : scheduleRealInfos) {
594 - if (scheduleRealInfo != null) {  
595 - //计算计划里程(主任务过滤掉临加班次),烂班里程,临加里程,计划班次,烂班班次,增加班次  
596 - if (scheduleRealInfo != null) {  
597 - //计划里程(主任务过滤掉临加班次),  
598 - //烂班里程(主任务烂班),  
599 - //临加里程(主任务临加),  
600 - //计划班次,烂班班次,增加班次  
601 - tempJhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();  
602 - if (scheduleRealInfo.isSflj()) {  
603 - ljbc++;  
604 - } else {  
605 - jhlc += tempJhlc;  
606 - jhbc++;  
607 - if (scheduleRealInfo.getStatus() == -1) {  
608 - remMileage += tempJhlc;  
609 - cjbc++;  
610 - }  
611 - }  
612 - Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();  
613 - //计算营运里程,空驶里程  
614 - if (childTaskPlans.isEmpty()) {  
615 - if (scheduleRealInfo.getBcType().equals("in") || scheduleRealInfo.getBcType().equals("out")  
616 - ) {  
617 - ksgl += tempJhlc;  
618 - } else {  
619 - yygl += tempJhlc;  
620 - }  
621 - } else {  
622 - Iterator<ChildTaskPlan> it = childTaskPlans.iterator();  
623 - while (it.hasNext()) {  
624 - ChildTaskPlan childTaskPlan = it.next();  
625 - if (childTaskPlan.getMileageType().equals("empty")) {  
626 - if (scheduleRealInfo.isSflj()) {  
627 - addMileage += tempJhlc;  
628 - }  
629 - ksgl += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();  
630 - } else {  
631 - if (scheduleRealInfo.isSflj()) {  
632 - addMileage += tempJhlc;  
633 - }  
634 - yygl += childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();  
635 - }  
636 - }  
637 - }  
638 - }  
639 -  
640 map = new HashMap<String, Object>(); 598 map = new HashMap<String, Object>();
641 try { 599 try {
642 scheduleRealInfo.setjName(scheduleRealInfo.getjGh() + scheduleRealInfo.getjName()); 600 scheduleRealInfo.setjName(scheduleRealInfo.getjGh() + scheduleRealInfo.getjName());
@@ -661,21 +619,23 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -661,21 +619,23 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
661 } catch (Exception e) { 619 } catch (Exception e) {
662 e.printStackTrace(); 620 e.printStackTrace();
663 } 621 }
664 - }  
665 } 622 }
666 623
667 //计算里程和班次数,并放入Map里 624 //计算里程和班次数,并放入Map里
668 map = new HashMap<String, Object>(); 625 map = new HashMap<String, Object>();
669 - map.put("jhlc", format.format(jhlc));  
670 - map.put("remMileage", format.format(remMileage));  
671 - map.put("addMileage", format.format(addMileage));  
672 - map.put("yygl", format.format(yygl));  
673 - map.put("ksgl", format.format(ksgl));  
674 - map.put("realMileage", format.format(yygl + ksgl));  
675 - map.put("jhbc", jhbc);  
676 - map.put("cjbc", cjbc);  
677 - map.put("ljbc", ljbc);  
678 - map.put("sjbc", jhbc - cjbc + ljbc); 626 + map.put("jhlc", culateMieageService.culateJhgl(scheduleRealInfos));
  627 + map.put("remMileage",culateMieageService.culateLbgl(lists));
  628 + map.put("addMileage", culateMieageService.culateLjgl(lists));
  629 + double yygl=Arith.add(culateMieageService.culateSjgl(lists),culateMieageService.culateLjgl(lists));
  630 + map.put("yygl", yygl);
  631 + double ksgl=Arith.add(culateMieageService.culateKsgl(lists),culateMieageService.culateJccgl(lists));
  632 + map.put("ksgl",ksgl);
  633 + map.put("realMileage", Arith.add(yygl ,ksgl));
  634 + map.put("jhbc", culateMieageService.culateJhgl(scheduleRealInfos));
  635 + map.put("cjbc", culateMieageService.culateLbbc(lists));
  636 + map.put("ljbc", culateMieageService.culateLjbc(lists, ""));
  637 + int sjbc =culateMieageService.culateLjbc(lists, "")+culateMieageService.culateSjbc(lists, "");
  638 + map.put("sjbc", sjbc);
679 639
680 String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; 640 String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
681 641
@@ -1414,19 +1374,27 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1414,19 +1374,27 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1414 public Map<String, Object> findKMBC(String jGh, String clZbh, 1374 public Map<String, Object> findKMBC(String jGh, String clZbh,
1415 String lpName, String date, String line) { 1375 String lpName, String date, String line) {
1416 Map<String, Object> map = new HashMap<String, Object>(); 1376 Map<String, Object> map = new HashMap<String, Object>();
1417 - List<ScheduleRealInfo> lists=scheduleRealInfoRepository.queryListWaybillXcld(jGh, clZbh, lpName, date, line); 1377 + List<ScheduleRealInfo> list=scheduleRealInfoRepository.queryListWaybillXcld(jGh, clZbh, lpName, date, line);
  1378 + List<ScheduleRealInfo> lists=new ArrayList<ScheduleRealInfo>();
  1379 + for (int i = 0; i < list.size(); i++) {
  1380 + ScheduleRealInfo s=list.get(i);
  1381 + if(s.getZdsjActual()!=null){
  1382 + lists.add(s);
  1383 + }
  1384 + }
1418 double ksgl=culateService.culateKsgl(lists); 1385 double ksgl=culateService.culateKsgl(lists);
1419 double sjgl=culateService.culateSjgl(lists); 1386 double sjgl=culateService.culateSjgl(lists);
1420 double jccgl=culateService.culateJccgl(lists); 1387 double jccgl=culateService.culateJccgl(lists);
1421 double ljgl=culateService.culateLjgl(lists); 1388 double ljgl=culateService.culateLjgl(lists);
1422 - map.put("jhlc", culateService.culateJhgl(lists)); //计划里程 1389 +
  1390 + map.put("jhlc", culateService.culateJhgl(list)); //计划里程
1423 map.put("remMileage", culateService.culateLbgl(lists)); //烂班公里 1391 map.put("remMileage", culateService.culateLbgl(lists)); //烂班公里
1424 map.put("addMileage", ljgl); //临加公里 1392 map.put("addMileage", ljgl); //临加公里
1425 map.put("yygl",Arith.add(sjgl,ljgl)); //实际公里 1393 map.put("yygl",Arith.add(sjgl,ljgl)); //实际公里
1426 map.put("ksgl", ksgl);//空驶公里 1394 map.put("ksgl", ksgl);//空驶公里
1427 map.put("realMileage",Arith.add(Arith.add(ksgl,jccgl ),Arith.add(sjgl,ljgl))); 1395 map.put("realMileage",Arith.add(Arith.add(ksgl,jccgl ),Arith.add(sjgl,ljgl)));
1428 // map.put("realMileage", format.format(yygl + ksgl + jcclc+addMileage)); 1396 // map.put("realMileage", format.format(yygl + ksgl + jcclc+addMileage));
1429 - map.put("jhbc", culateService.culateJhbc(lists,"")); 1397 + map.put("jhbc", culateService.culateJhbc(list,""));
1430 map.put("cjbc", culateService.culateLbbc(lists)); 1398 map.put("cjbc", culateService.culateLbbc(lists));
1431 map.put("ljbc", culateService.culateLjbc(lists,"")); 1399 map.put("ljbc", culateService.culateLjbc(lists,""));
1432 map.put("sjbc", culateService.culateJhbc(lists,"") - culateService.culateLbbc(lists) + culateService.culateLjbc(lists,"")); 1400 map.put("sjbc", culateService.culateJhbc(lists,"") - culateService.culateLbbc(lists) + culateService.culateLjbc(lists,""));
@@ -1670,7 +1638,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1670,7 +1638,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1670 map.put("ssgl_kx", culateService.culateCJLC(lists, "客稀")); 1638 map.put("ssgl_kx", culateService.culateCJLC(lists, "客稀"));
1671 map.put("ssgl_qh", culateService.culateCJLC(lists, "气候")); 1639 map.put("ssgl_qh", culateService.culateCJLC(lists, "气候"));
1672 map.put("ssgl_yw", culateService.culateCJLC(lists, "援外")); 1640 map.put("ssgl_yw", culateService.culateCJLC(lists, "援外"));
1673 - map.put("ssgl_other", culateService.culateCJLC(lists, "其他")); 1641 + double ssgl_pc=culateService.culateCJLC(lists, "配车");
  1642 + double ssgl_by=culateService.culateCJLC(lists, "保养");
  1643 + double ssgl_cj=culateService.culateCJLC(lists, "抽减");
  1644 + double ssgl_qt=culateService.culateCJLC(lists, "其他");
  1645 + map.put("ssgl_other", Arith.add(Arith.add(ssgl_pc, ssgl_by),Arith.add(ssgl_cj, ssgl_qt)));
1674 map.put("ssbc", culateService.culateLbbc(lists)); 1646 map.put("ssbc", culateService.culateLbbc(lists));
1675 map.put("ljgl", culateService.culateLjgl(lists)); 1647 map.put("ljgl", culateService.culateLjgl(lists));
1676 map.put("jhbc", culateService.culateJhbc(lists,"")); 1648 map.put("jhbc", culateService.culateJhbc(lists,""));
@@ -3793,6 +3765,76 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3793,6 +3765,76 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3793 return new ArrayList<Map<String, Object>>(); 3765 return new ArrayList<Map<String, Object>>();
3794 } 3766 }
3795 3767
  3768 + public List<ScheduleRealInfo> exportWaybill_pl(List<ScheduleRealInfo> listpl,String date,String jName, String clZbh,String lpName) {
  3769 + ReportUtils ee = new ReportUtils();
  3770 + ReportRelatedUtils rru = new ReportRelatedUtils();
  3771 + List<Iterator<?>> list = new ArrayList<Iterator<?>>();
  3772 + List<ScheduleRealInfo> scheduleRealInfos = listpl;
  3773 + List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
  3774 +// List<ScheduleRealInfo> scheduleRealInfos=scheduleRealInfoRepository.queryListWaybillXcld(jName, clZbh, lpName, date, line);
  3775 + List<ScheduleRealInfo> lists=new ArrayList<ScheduleRealInfo>();
  3776 + for (int i = 0; i < scheduleRealInfos.size(); i++) {
  3777 + ScheduleRealInfo s=scheduleRealInfos.get(i);
  3778 + if(s.getZdsjActual()!=null){
  3779 + lists.add(s);
  3780 + }
  3781 + }
  3782 + DecimalFormat format = new DecimalFormat("0.00");
  3783 +// int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName);
  3784 +// int ljbc = scheduleRealInfoRepository.findLjbc(jName, clZbh, lpName);
  3785 +
  3786 + Map<String, Object> map;
  3787 + for (ScheduleRealInfo scheduleRealInfo : scheduleRealInfos) {
  3788 + map = new HashMap<String, Object>();
  3789 + try {
  3790 + scheduleRealInfo.setjName(scheduleRealInfo.getjGh() + scheduleRealInfo.getjName());
  3791 + scheduleRealInfo.setsName(scheduleRealInfo.getsGh() + scheduleRealInfo.getsName());
  3792 + map = rru.getMapValue(scheduleRealInfo);
  3793 + String zdsj = scheduleRealInfo.getZdsj();
  3794 + String zdsjActual = scheduleRealInfo.getZdsjActual();
  3795 + if (zdsj != null && zdsjActual != null &&
  3796 + !zdsj.equals(zdsjActual)) {
  3797 + if (zdsj.compareTo(zdsjActual) > 0) {
  3798 + map.put("fast", TimeUtils.getTimeDifference(zdsj, zdsjActual));
  3799 + map.put("slow", "");
  3800 + } else {
  3801 + map.put("fast", "");
  3802 + map.put("slow", TimeUtils.getTimeDifference(zdsj, zdsjActual));
  3803 + }
  3804 + } else {
  3805 + map.put("fast", "");
  3806 + map.put("slow", "");
  3807 + }
  3808 + listMap.add(map);
  3809 + } catch (Exception e) {
  3810 + e.printStackTrace();
  3811 + }
  3812 + }
  3813 +
  3814 + //计算里程和班次数,并放入Map里
  3815 + map = new HashMap<String, Object>();
  3816 + map.put("jhlc", culateMieageService.culateJhgl(scheduleRealInfos));
  3817 + map.put("remMileage",culateMieageService.culateLbgl(lists));
  3818 + map.put("addMileage", culateMieageService.culateLjgl(lists));
  3819 + double yygl=Arith.add(culateMieageService.culateSjgl(lists),culateMieageService.culateLjgl(lists));
  3820 + map.put("yygl", yygl);
  3821 + double ksgl=Arith.add(culateMieageService.culateKsgl(lists),culateMieageService.culateJccgl(lists));
  3822 + map.put("ksgl",ksgl);
  3823 + map.put("realMileage", Arith.add(yygl ,ksgl));
  3824 + map.put("jhbc", culateMieageService.culateJhgl(scheduleRealInfos));
  3825 + map.put("cjbc", culateMieageService.culateLbbc(lists));
  3826 + map.put("ljbc", culateMieageService.culateLjbc(lists, ""));
  3827 + int sjbc =culateMieageService.culateLjbc(lists, "")+culateMieageService.culateSjbc(lists, "");
  3828 + map.put("sjbc", sjbc);
  3829 +
  3830 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  3831 +
  3832 + list.add(listMap.iterator());
  3833 + ee.excelReplace(list, new Object[]{scheduleRealInfos.get(0), map}, path + "mould/waybill_minhang.xls",
  3834 + path + "export/" + date + "-" + jName + "-" + clZbh + "-" + lpName + "-行车路单.xls");
  3835 + return scheduleRealInfos;
  3836 + }
  3837 +
3796 @Override 3838 @Override
3797 public Map<String, Object> exportWaybillMore(Map<String, Object> map) { 3839 public Map<String, Object> exportWaybillMore(Map<String, Object> map) {
3798 String date = map.get("date").toString(); 3840 String date = map.get("date").toString();
@@ -3814,12 +3856,19 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3814,12 +3856,19 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3814 } 3856 }
3815 } 3857 }
3816 file.mkdirs(); 3858 file.mkdirs();
3817 - 3859 + List<ScheduleRealInfo> lists_line=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(line, date);
3818 for (List<String> list : lists) { 3860 for (List<String> list : lists) {
  3861 + List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
3819 String jName = list.get(0); 3862 String jName = list.get(0);
3820 String clZbh = list.get(1); 3863 String clZbh = list.get(1);
3821 String lpName = list.get(2); 3864 String lpName = list.get(2);
3822 - this.exportWaybill(jName, clZbh, lpName, date, line); 3865 + for (int i = 0; i < lists_line.size(); i++) {
  3866 + ScheduleRealInfo s=lists_line.get(i);
  3867 + if(s.getjName().equals(jName) && s.getClZbh().equals(clZbh) && s.getLpName().equals(lpName)){
  3868 + newList.add(s);
  3869 + }
  3870 + }
  3871 + this.exportWaybill_pl(newList, date, jName, clZbh, lpName);
3823 File temp = new File(path + date + "-" + jName + "-" + clZbh + "-" + lpName + "-行车路单.xls"); 3872 File temp = new File(path + date + "-" + jName + "-" + clZbh + "-" + lpName + "-行车路单.xls");
3824 String fileName = file.getName(); 3873 String fileName = file.getName();
3825 temp.renameTo(new File(path + fileName + "/" + temp.getName())); 3874 temp.renameTo(new File(path + fileName + "/" + temp.getName()));
src/main/resources/datatools/ktrs/guideboardDataInput.ktr
@@ -276,6 +276,155 @@ @@ -276,6 +276,155 @@
276 <hop> <from>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</to><enabled>Y</enabled> </hop> 276 <hop> <from>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</to><enabled>Y</enabled> </hop>
277 </order> 277 </order>
278 <step> 278 <step>
  279 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  280 + <type>ExcelInput</type>
  281 + <description/>
  282 + <distribute>Y</distribute>
  283 + <custom_distribution/>
  284 + <copies>1</copies>
  285 + <partitioning>
  286 + <method>none</method>
  287 + <schema_name/>
  288 + </partitioning>
  289 + <header>Y</header>
  290 + <noempty>Y</noempty>
  291 + <stoponempty>N</stoponempty>
  292 + <filefield/>
  293 + <sheetfield/>
  294 + <sheetrownumfield/>
  295 + <rownumfield/>
  296 + <sheetfield/>
  297 + <filefield/>
  298 + <limit>0</limit>
  299 + <encoding/>
  300 + <add_to_result_filenames>Y</add_to_result_filenames>
  301 + <accept_filenames>Y</accept_filenames>
  302 + <accept_field>filepath_</accept_field>
  303 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  304 + <file>
  305 + <name/>
  306 + <filemask/>
  307 + <exclude_filemask/>
  308 + <file_required>N</file_required>
  309 + <include_subfolders>N</include_subfolders>
  310 + </file>
  311 + <fields>
  312 + <field>
  313 + <name>&#x7ebf;&#x8def;</name>
  314 + <type>String</type>
  315 + <length>-1</length>
  316 + <precision>-1</precision>
  317 + <trim_type>none</trim_type>
  318 + <repeat>N</repeat>
  319 + <format/>
  320 + <currency/>
  321 + <decimal/>
  322 + <group/>
  323 + </field>
  324 + <field>
  325 + <name>&#x8def;&#x724c;&#x7f16;&#x53f7;</name>
  326 + <type>String</type>
  327 + <length>-1</length>
  328 + <precision>-1</precision>
  329 + <trim_type>none</trim_type>
  330 + <repeat>N</repeat>
  331 + <format>&#x23;</format>
  332 + <currency/>
  333 + <decimal/>
  334 + <group/>
  335 + </field>
  336 + <field>
  337 + <name>&#x8def;&#x724c;&#x540d;&#x79f0;</name>
  338 + <type>String</type>
  339 + <length>-1</length>
  340 + <precision>-1</precision>
  341 + <trim_type>none</trim_type>
  342 + <repeat>N</repeat>
  343 + <format>&#x23;</format>
  344 + <currency/>
  345 + <decimal/>
  346 + <group/>
  347 + </field>
  348 + <field>
  349 + <name>&#x8def;&#x724c;&#x7c7b;&#x578b;</name>
  350 + <type>String</type>
  351 + <length>-1</length>
  352 + <precision>-1</precision>
  353 + <trim_type>none</trim_type>
  354 + <repeat>N</repeat>
  355 + <format/>
  356 + <currency/>
  357 + <decimal/>
  358 + <group/>
  359 + </field>
  360 + </fields>
  361 + <sheets>
  362 + <sheet>
  363 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  364 + <startrow>0</startrow>
  365 + <startcol>0</startcol>
  366 + </sheet>
  367 + </sheets>
  368 + <strict_types>N</strict_types>
  369 + <error_ignored>N</error_ignored>
  370 + <error_line_skipped>N</error_line_skipped>
  371 + <bad_line_files_destination_directory/>
  372 + <bad_line_files_extension>warning</bad_line_files_extension>
  373 + <error_line_files_destination_directory/>
  374 + <error_line_files_extension>error</error_line_files_extension>
  375 + <line_number_files_destination_directory/>
  376 + <line_number_files_extension>line</line_number_files_extension>
  377 + <shortFileFieldName/>
  378 + <pathFieldName/>
  379 + <hiddenFieldName/>
  380 + <lastModificationTimeFieldName/>
  381 + <uriNameFieldName/>
  382 + <rootUriNameFieldName/>
  383 + <extensionFieldName/>
  384 + <sizeFieldName/>
  385 + <spreadsheet_type>JXL</spreadsheet_type>
  386 + <cluster_schema/>
  387 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  388 + <xloc>150</xloc>
  389 + <yloc>68</yloc>
  390 + <draw>Y</draw>
  391 + </GUI>
  392 + </step>
  393 +
  394 + <step>
  395 + <name>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</name>
  396 + <type>Constant</type>
  397 + <description/>
  398 + <distribute>Y</distribute>
  399 + <custom_distribution/>
  400 + <copies>1</copies>
  401 + <partitioning>
  402 + <method>none</method>
  403 + <schema_name/>
  404 + </partitioning>
  405 + <fields>
  406 + <field>
  407 + <name>isCancel</name>
  408 + <type>Integer</type>
  409 + <format/>
  410 + <currency/>
  411 + <decimal/>
  412 + <group/>
  413 + <nullif>0</nullif>
  414 + <length>-1</length>
  415 + <precision>-1</precision>
  416 + <set_empty_string>N</set_empty_string>
  417 + </field>
  418 + </fields>
  419 + <cluster_schema/>
  420 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  421 + <xloc>544</xloc>
  422 + <yloc>70</yloc>
  423 + <draw>Y</draw>
  424 + </GUI>
  425 + </step>
  426 +
  427 + <step>
279 <name>&#x5b57;&#x6bb5;&#x6539;&#x540d;</name> 428 <name>&#x5b57;&#x6bb5;&#x6539;&#x540d;</name>
280 <type>SelectValues</type> 429 <type>SelectValues</type>
281 <description/> 430 <description/>
@@ -393,27 +542,27 @@ @@ -393,27 +542,27 @@
393 <value> 542 <value>
394 <name>xl</name> 543 <name>xl</name>
395 <rename>xlid</rename> 544 <rename>xlid</rename>
396 - <update>N</update> 545 + <update>Y</update>
397 </value> 546 </value>
398 <value> 547 <value>
399 <name>lp_no</name> 548 <name>lp_no</name>
400 <rename>lpno</rename> 549 <rename>lpno</rename>
401 - <update>N</update> 550 + <update>Y</update>
402 </value> 551 </value>
403 <value> 552 <value>
404 <name>lp_name</name> 553 <name>lp_name</name>
405 <rename>lpname</rename> 554 <rename>lpname</rename>
406 - <update>N</update> 555 + <update>Y</update>
407 </value> 556 </value>
408 <value> 557 <value>
409 <name>lp_type</name> 558 <name>lp_type</name>
410 <rename>lptype</rename> 559 <rename>lptype</rename>
411 - <update>N</update> 560 + <update>Y</update>
412 </value> 561 </value>
413 <value> 562 <value>
414 <name>is_cancel</name> 563 <name>is_cancel</name>
415 <rename>isCancel</rename> 564 <rename>isCancel</rename>
416 - <update>N</update> 565 + <update>Y</update>
417 </value> 566 </value>
418 </lookup> 567 </lookup>
419 <cluster_schema/> 568 <cluster_schema/>
@@ -512,122 +661,6 @@ @@ -512,122 +661,6 @@
512 </step> 661 </step>
513 662
514 <step> 663 <step>
515 - <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>  
516 - <type>ExcelInput</type>  
517 - <description/>  
518 - <distribute>Y</distribute>  
519 - <custom_distribution/>  
520 - <copies>1</copies>  
521 - <partitioning>  
522 - <method>none</method>  
523 - <schema_name/>  
524 - </partitioning>  
525 - <header>Y</header>  
526 - <noempty>Y</noempty>  
527 - <stoponempty>N</stoponempty>  
528 - <filefield/>  
529 - <sheetfield/>  
530 - <sheetrownumfield/>  
531 - <rownumfield/>  
532 - <sheetfield/>  
533 - <filefield/>  
534 - <limit>0</limit>  
535 - <encoding/>  
536 - <add_to_result_filenames>Y</add_to_result_filenames>  
537 - <accept_filenames>Y</accept_filenames>  
538 - <accept_field>filepath_</accept_field>  
539 - <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>  
540 - <file>  
541 - <name/>  
542 - <filemask/>  
543 - <exclude_filemask/>  
544 - <file_required>N</file_required>  
545 - <include_subfolders>N</include_subfolders>  
546 - </file>  
547 - <fields>  
548 - <field>  
549 - <name>&#x7ebf;&#x8def;</name>  
550 - <type>String</type>  
551 - <length>-1</length>  
552 - <precision>-1</precision>  
553 - <trim_type>none</trim_type>  
554 - <repeat>N</repeat>  
555 - <format/>  
556 - <currency/>  
557 - <decimal/>  
558 - <group/>  
559 - </field>  
560 - <field>  
561 - <name>&#x8def;&#x724c;&#x7f16;&#x53f7;</name>  
562 - <type>String</type>  
563 - <length>-1</length>  
564 - <precision>-1</precision>  
565 - <trim_type>none</trim_type>  
566 - <repeat>N</repeat>  
567 - <format>&#x23;</format>  
568 - <currency/>  
569 - <decimal/>  
570 - <group/>  
571 - </field>  
572 - <field>  
573 - <name>&#x8def;&#x724c;&#x540d;&#x79f0;</name>  
574 - <type>String</type>  
575 - <length>-1</length>  
576 - <precision>-1</precision>  
577 - <trim_type>none</trim_type>  
578 - <repeat>N</repeat>  
579 - <format>&#x23;</format>  
580 - <currency/>  
581 - <decimal/>  
582 - <group/>  
583 - </field>  
584 - <field>  
585 - <name>&#x8def;&#x724c;&#x7c7b;&#x578b;</name>  
586 - <type>String</type>  
587 - <length>-1</length>  
588 - <precision>-1</precision>  
589 - <trim_type>none</trim_type>  
590 - <repeat>N</repeat>  
591 - <format/>  
592 - <currency/>  
593 - <decimal/>  
594 - <group/>  
595 - </field>  
596 - </fields>  
597 - <sheets>  
598 - <sheet>  
599 - <name>&#x5de5;&#x4f5c;&#x8868;1</name>  
600 - <startrow>0</startrow>  
601 - <startcol>0</startcol>  
602 - </sheet>  
603 - </sheets>  
604 - <strict_types>N</strict_types>  
605 - <error_ignored>N</error_ignored>  
606 - <error_line_skipped>N</error_line_skipped>  
607 - <bad_line_files_destination_directory/>  
608 - <bad_line_files_extension>warning</bad_line_files_extension>  
609 - <error_line_files_destination_directory/>  
610 - <error_line_files_extension>error</error_line_files_extension>  
611 - <line_number_files_destination_directory/>  
612 - <line_number_files_extension>line</line_number_files_extension>  
613 - <shortFileFieldName/>  
614 - <pathFieldName/>  
615 - <hiddenFieldName/>  
616 - <lastModificationTimeFieldName/>  
617 - <uriNameFieldName/>  
618 - <rootUriNameFieldName/>  
619 - <extensionFieldName/>  
620 - <sizeFieldName/>  
621 - <spreadsheet_type>JXL</spreadsheet_type>  
622 - <cluster_schema/>  
623 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
624 - <xloc>150</xloc>  
625 - <yloc>68</yloc>  
626 - <draw>Y</draw>  
627 - </GUI>  
628 - </step>  
629 -  
630 - <step>  
631 <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name> 664 <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>
632 <type>ExcelOutput</type> 665 <type>ExcelOutput</type>
633 <description/> 666 <description/>
@@ -754,39 +787,6 @@ @@ -754,39 +787,6 @@
754 </GUI> 787 </GUI>
755 </step> 788 </step>
756 789
757 - <step>  
758 - <name>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</name>  
759 - <type>Constant</type>  
760 - <description/>  
761 - <distribute>Y</distribute>  
762 - <custom_distribution/>  
763 - <copies>1</copies>  
764 - <partitioning>  
765 - <method>none</method>  
766 - <schema_name/>  
767 - </partitioning>  
768 - <fields>  
769 - <field>  
770 - <name>isCancel</name>  
771 - <type>Integer</type>  
772 - <format/>  
773 - <currency/>  
774 - <decimal/>  
775 - <group/>  
776 - <nullif>0</nullif>  
777 - <length>-1</length>  
778 - <precision>-1</precision>  
779 - <set_empty_string>N</set_empty_string>  
780 - </field>  
781 - </fields>  
782 - <cluster_schema/>  
783 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
784 - <xloc>544</xloc>  
785 - <yloc>70</yloc>  
786 - <draw>Y</draw>  
787 - </GUI>  
788 - </step>  
789 -  
790 <step_error_handling> 790 <step_error_handling>
791 <error> 791 <error>
792 <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</source_step> 792 <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</source_step>
src/main/resources/static/pages/base/timesmodel/js/raty/lib/jquery.raty.min.js
1 -/*!  
2 - * jQuery Raty - A Star Rating Plugin  
3 - *  
4 - * Licensed under The MIT License  
5 - *  
6 - * @version 2.5.2  
7 - * @author Washington Botelho  
8 - * @documentation wbotelhos.com/raty  
9 - *  
10 - */  
11 -  
12 -;(function(b){var a={init:function(c){return this.each(function(){a.destroy.call(this);this.opt=b.extend(true,{},b.fn.raty.defaults,c);var e=b(this),g=["number","readOnly","score","scoreName"];a._callback.call(this,g);if(this.opt.precision){a._adjustPrecision.call(this);}this.opt.number=a._between(this.opt.number,0,this.opt.numberMax);this.opt.path=this.opt.path||"";if(this.opt.path&&this.opt.path.slice(this.opt.path.length-1,this.opt.path.length)!=="/"){this.opt.path+="/";}this.stars=a._createStars.call(this);this.score=a._createScore.call(this);a._apply.call(this,this.opt.score);var f=this.opt.space?4:0,d=this.opt.width||(this.opt.number*this.opt.size+this.opt.number*f);if(this.opt.cancel){this.cancel=a._createCancel.call(this);d+=(this.opt.size+f);}if(this.opt.readOnly){a._lock.call(this);}else{e.css("cursor","pointer");a._binds.call(this);}if(this.opt.width!==false){e.css("width",d);}a._target.call(this,this.opt.score);e.data({settings:this.opt,raty:true});});},_adjustPrecision:function(){this.opt.targetType="score";this.opt.half=true;},_apply:function(c){if(c&&c>0){c=a._between(c,0,this.opt.number);this.score.val(c);}a._fill.call(this,c);if(c){a._roundStars.call(this,c);}},_between:function(e,d,c){return Math.min(Math.max(parseFloat(e),d),c);},_binds:function(){if(this.cancel){a._bindCancel.call(this);}a._bindClick.call(this);a._bindOut.call(this);a._bindOver.call(this);},_bindCancel:function(){a._bindClickCancel.call(this);a._bindOutCancel.call(this);a._bindOverCancel.call(this);},_bindClick:function(){var c=this,d=b(c);c.stars.on("click.raty",function(e){c.score.val((c.opt.half||c.opt.precision)?d.data("score"):this.alt);if(c.opt.click){c.opt.click.call(c,parseFloat(c.score.val()),e);}});},_bindClickCancel:function(){var c=this;c.cancel.on("click.raty",function(d){c.score.removeAttr("value");if(c.opt.click){c.opt.click.call(c,null,d);}});},_bindOut:function(){var c=this;b(this).on("mouseleave.raty",function(d){var e=parseFloat(c.score.val())||undefined;a._apply.call(c,e);a._target.call(c,e,d);if(c.opt.mouseout){c.opt.mouseout.call(c,e,d);}});},_bindOutCancel:function(){var c=this;c.cancel.on("mouseleave.raty",function(d){b(this).attr("src",c.opt.path+c.opt.cancelOff);if(c.opt.mouseout){c.opt.mouseout.call(c,c.score.val()||null,d);}});},_bindOverCancel:function(){var c=this;c.cancel.on("mouseover.raty",function(d){b(this).attr("src",c.opt.path+c.opt.cancelOn);c.stars.attr("src",c.opt.path+c.opt.starOff);a._target.call(c,null,d);if(c.opt.mouseover){c.opt.mouseover.call(c,null);}});},_bindOver:function(){var c=this,d=b(c),e=c.opt.half?"mousemove.raty":"mouseover.raty";c.stars.on(e,function(g){var h=parseInt(this.alt,10);if(c.opt.half){var f=parseFloat((g.pageX-b(this).offset().left)/c.opt.size),j=(f>0.5)?1:0.5;h=h-1+j;a._fill.call(c,h);if(c.opt.precision){h=h-j+f;}a._roundStars.call(c,h);d.data("score",h);}else{a._fill.call(c,h);}a._target.call(c,h,g);if(c.opt.mouseover){c.opt.mouseover.call(c,h,g);}});},_callback:function(c){for(i in c){if(typeof this.opt[c[i]]==="function"){this.opt[c[i]]=this.opt[c[i]].call(this);}}},_createCancel:function(){var e=b(this),c=this.opt.path+this.opt.cancelOff,d=b("<img />",{src:c,alt:"x",title:this.opt.cancelHint,"class":"raty-cancel"});if(this.opt.cancelPlace=="left"){e.prepend("&#160;").prepend(d);}else{e.append("&#160;").append(d);}return d;},_createScore:function(){return b("<input />",{type:"hidden",name:this.opt.scoreName}).appendTo(this);},_createStars:function(){var e=b(this);for(var c=1;c<=this.opt.number;c++){var f=a._getHint.call(this,c),d=(this.opt.score&&this.opt.score>=c)?"starOn":"starOff";d=this.opt.path+this.opt[d];b("<img />",{src:d,alt:c,title:f}).appendTo(this);if(this.opt.space){e.append((c<this.opt.number)?"&#160;":"");}}return e.children("img");},_error:function(c){b(this).html(c);b.error(c);},_fill:function(d){var m=this,e=0;for(var f=1;f<=m.stars.length;f++){var g=m.stars.eq(f-1),l=m.opt.single?(f==d):(f<=d);if(m.opt.iconRange&&m.opt.iconRange.length>e){var j=m.opt.iconRange[e],h=j.on||m.opt.starOn,c=j.off||m.opt.starOff,k=l?h:c;if(f<=j.range){g.attr("src",m.opt.path+k);}if(f==j.range){e++;}}else{var k=l?"starOn":"starOff";g.attr("src",this.opt.path+this.opt[k]);}}},_getHint:function(d){var c=this.opt.hints[d-1];return(c==="")?"":(c||d);},_lock:function(){var d=parseInt(this.score.val(),10),c=d?a._getHint.call(this,d):this.opt.noRatedMsg;b(this).data("readonly",true).css("cursor","").attr("title",c);this.score.attr("readonly","readonly");this.stars.attr("title",c);if(this.cancel){this.cancel.hide();}},_roundStars:function(e){var d=(e-Math.floor(e)).toFixed(2);if(d>this.opt.round.down){var c="starOn";if(this.opt.halfShow&&d<this.opt.round.up){c="starHalf";}else{if(d<this.opt.round.full){c="starOff";}}this.stars.eq(Math.ceil(e)-1).attr("src",this.opt.path+this.opt[c]);}},_target:function(f,d){if(this.opt.target){var e=b(this.opt.target);if(e.length===0){a._error.call(this,"Target selector invalid or missing!");}if(this.opt.targetFormat.indexOf("{score}")<0){a._error.call(this,'Template "{score}" missing!');}var c=d&&d.type=="mouseover";if(f===undefined){f=this.opt.targetText;}else{if(f===null){f=c?this.opt.cancelHint:this.opt.targetText;}else{if(this.opt.targetType=="hint"){f=a._getHint.call(this,Math.ceil(f));}else{if(this.opt.precision){f=parseFloat(f).toFixed(1);}}if(!c&&!this.opt.targetKeep){f=this.opt.targetText;}}}if(f){f=this.opt.targetFormat.toString().replace("{score}",f);}if(e.is(":input")){e.val(f);}else{e.html(f);}}},_unlock:function(){b(this).data("readonly",false).css("cursor","pointer").removeAttr("title");this.score.removeAttr("readonly","readonly");for(var c=0;c<this.opt.number;c++){this.stars.eq(c).attr("title",a._getHint.call(this,c+1));}if(this.cancel){this.cancel.css("display","");}},cancel:function(c){return this.each(function(){if(b(this).data("readonly")!==true){a[c?"click":"score"].call(this,null);this.score.removeAttr("value");}});},click:function(c){return b(this).each(function(){if(b(this).data("readonly")!==true){a._apply.call(this,c);if(!this.opt.click){a._error.call(this,'You must add the "click: function(score, evt) { }" callback.');}this.opt.click.call(this,c,{type:"click"});a._target.call(this,c);}});},destroy:function(){return b(this).each(function(){var d=b(this),c=d.data("raw");if(c){d.off(".raty").empty().css({cursor:c.style.cursor,width:c.style.width}).removeData("readonly");}else{d.data("raw",d.clone()[0]);}});},getScore:function(){var d=[],c;b(this).each(function(){c=this.score.val();d.push(c?parseFloat(c):undefined);});return(d.length>1)?d:d[0];},readOnly:function(c){return this.each(function(){var d=b(this);if(d.data("readonly")!==c){if(c){d.off(".raty").children("img").off(".raty");a._lock.call(this);}else{a._binds.call(this);a._unlock.call(this);}d.data("readonly",c);}});},reload:function(){return a.set.call(this,{});},score:function(){return arguments.length?a.setScore.apply(this,arguments):a.getScore.call(this);},set:function(c){return this.each(function(){var e=b(this),f=e.data("settings"),d=b.extend({},f,c);e.raty(d);});},setScore:function(c){return b(this).each(function(){if(b(this).data("readonly")!==true){a._apply.call(this,c);a._target.call(this,c);}});}};b.fn.raty=function(c){if(a[c]){return a[c].apply(this,Array.prototype.slice.call(arguments,1));}else{if(typeof c==="object"||!c){return a.init.apply(this,arguments);}else{b.error("Method "+c+" does not exist!");}}};b.fn.raty.defaults={cancel:false,cancelHint:"Cancel this rating!",cancelOff:"cancel-off.png",cancelOn:"cancel-on.png",cancelPlace:"left",click:undefined,half:false,halfShow:true,hints:["bad","poor","regular","good","gorgeous"],iconRange:undefined,mouseout:undefined,mouseover:undefined,noRatedMsg:"Not rated yet!",number:5,numberMax:20,path:"",precision:false,readOnly:false,round:{down:0.25,full:0.6,up:0.76},score:undefined,scoreName:"score",single:false,size:16,space:true,starHalf:"star-half.png",starOff:"star-off.png",starOn:"star-on.png",target:undefined,targetFormat:"{score}",targetKeep:false,targetText:"",targetType:"hint",width:undefined};})(jQuery); 1 +/*!
  2 + * jQuery Raty - A Star Rating Plugin
  3 + *
  4 + * Licensed under The MIT License
  5 + *
  6 + * @version 2.5.2
  7 + * @author Washington Botelho
  8 + * @documentation wbotelhos.com/raty
  9 + *
  10 + */
  11 +
  12 +;(function(b){var a={init:function(c){return this.each(function(){a.destroy.call(this);this.opt=b.extend(true,{},b.fn.raty.defaults,c);var e=b(this),g=["number","readOnly","score","scoreName"];a._callback.call(this,g);if(this.opt.precision){a._adjustPrecision.call(this);}this.opt.number=a._between(this.opt.number,0,this.opt.numberMax);this.opt.path=this.opt.path||"";if(this.opt.path&&this.opt.path.slice(this.opt.path.length-1,this.opt.path.length)!=="/"){this.opt.path+="/";}this.stars=a._createStars.call(this);this.score=a._createScore.call(this);a._apply.call(this,this.opt.score);var f=this.opt.space?4:0,d=this.opt.width||(this.opt.number*this.opt.size+this.opt.number*f);if(this.opt.cancel){this.cancel=a._createCancel.call(this);d+=(this.opt.size+f);}if(this.opt.readOnly){a._lock.call(this);}else{e.css("cursor","pointer");a._binds.call(this);}if(this.opt.width!==false){e.css("width",d);}a._target.call(this,this.opt.score);e.data({settings:this.opt,raty:true});});},_adjustPrecision:function(){this.opt.targetType="score";this.opt.half=true;},_apply:function(c){if(c&&c>0){c=a._between(c,0,this.opt.number);this.score.val(c);}a._fill.call(this,c);if(c){a._roundStars.call(this,c);}},_between:function(e,d,c){return Math.min(Math.max(parseFloat(e),d),c);},_binds:function(){if(this.cancel){a._bindCancel.call(this);}a._bindClick.call(this);a._bindOut.call(this);a._bindOver.call(this);},_bindCancel:function(){a._bindClickCancel.call(this);a._bindOutCancel.call(this);a._bindOverCancel.call(this);},_bindClick:function(){var c=this,d=b(c);c.stars.on("click.raty",function(e){c.score.val((c.opt.half||c.opt.precision)?d.data("score"):this.alt);if(c.opt.click){c.opt.click.call(c,parseFloat(c.score.val()),e);}});},_bindClickCancel:function(){var c=this;c.cancel.on("click.raty",function(d){c.score.removeAttr("value");if(c.opt.click){c.opt.click.call(c,null,d);}});},_bindOut:function(){var c=this;b(this).on("mouseleave.raty",function(d){var e=parseFloat(c.score.val())||undefined;a._apply.call(c,e);a._target.call(c,e,d);if(c.opt.mouseout){c.opt.mouseout.call(c,e,d);}});},_bindOutCancel:function(){var c=this;c.cancel.on("mouseleave.raty",function(d){b(this).attr("src",c.opt.path+c.opt.cancelOff);if(c.opt.mouseout){c.opt.mouseout.call(c,c.score.val()||null,d);}});},_bindOverCancel:function(){var c=this;c.cancel.on("mouseover.raty",function(d){b(this).attr("src",c.opt.path+c.opt.cancelOn);c.stars.attr("src",c.opt.path+c.opt.starOff);a._target.call(c,null,d);if(c.opt.mouseover){c.opt.mouseover.call(c,null);}});},_bindOver:function(){var c=this,d=b(c),e=c.opt.half?"mousemove.raty":"mouseover.raty";c.stars.on(e,function(g){var h=parseInt(this.alt,10);if(c.opt.half){var f=parseFloat((g.pageX-b(this).offset().left)/c.opt.size),j=(f>0.5)?1:0.5;h=h-1+j;a._fill.call(c,h);if(c.opt.precision){h=h-j+f;}a._roundStars.call(c,h);d.data("score",h);}else{a._fill.call(c,h);}a._target.call(c,h,g);if(c.opt.mouseover){c.opt.mouseover.call(c,h,g);}});},_callback:function(c){for(i in c){if(typeof this.opt[c[i]]==="function"){this.opt[c[i]]=this.opt[c[i]].call(this);}}},_createCancel:function(){var e=b(this),c=this.opt.path+this.opt.cancelOff,d=b("<img />",{src:c,alt:"x",title:this.opt.cancelHint,"class":"raty-cancel"});if(this.opt.cancelPlace=="left"){e.prepend("&#160;").prepend(d);}else{e.append("&#160;").append(d);}return d;},_createScore:function(){return b("<input />",{type:"hidden",name:this.opt.scoreName}).appendTo(this);},_createStars:function(){var e=b(this);for(var c=1;c<=this.opt.number;c++){var f=a._getHint.call(this,c),d=(this.opt.score&&this.opt.score>=c)?"starOn":"starOff";d=this.opt.path+this.opt[d];b("<img />",{src:d,alt:c,title:f}).appendTo(this);if(this.opt.space){e.append((c<this.opt.number)?"&#160;":"");}}return e.children("img");},_error:function(c){b(this).html(c);b.error(c);},_fill:function(d){var m=this,e=0;for(var f=1;f<=m.stars.length;f++){var g=m.stars.eq(f-1),l=m.opt.single?(f==d):(f<=d);if(m.opt.iconRange&&m.opt.iconRange.length>e){var j=m.opt.iconRange[e],h=j.on||m.opt.starOn,c=j.off||m.opt.starOff,k=l?h:c;if(f<=j.range){g.attr("src",m.opt.path+k);}if(f==j.range){e++;}}else{var k=l?"starOn":"starOff";g.attr("src",this.opt.path+this.opt[k]);}}},_getHint:function(d){var c=this.opt.hints[d-1];return(c==="")?"":(c||d);},_lock:function(){var d=parseInt(this.score.val(),10),c=d?a._getHint.call(this,d):this.opt.noRatedMsg;b(this).data("readonly",true).css("cursor","").attr("title",c);this.score.attr("readonly","readonly");this.stars.attr("title",c);if(this.cancel){this.cancel.hide();}},_roundStars:function(e){var d=(e-Math.floor(e)).toFixed(2);if(d>this.opt.round.down){var c="starOn";if(this.opt.halfShow&&d<this.opt.round.up){c="starHalf";}else{if(d<this.opt.round.full){c="starOff";}}this.stars.eq(Math.ceil(e)-1).attr("src",this.opt.path+this.opt[c]);}},_target:function(f,d){if(this.opt.target){var e=b(this.opt.target);if(e.length===0){a._error.call(this,"Target selector invalid or missing!");}if(this.opt.targetFormat.indexOf("{score}")<0){a._error.call(this,'Template "{score}" missing!');}var c=d&&d.type=="mouseover";if(f===undefined){f=this.opt.targetText;}else{if(f===null){f=c?this.opt.cancelHint:this.opt.targetText;}else{if(this.opt.targetType=="hint"){f=a._getHint.call(this,Math.ceil(f));}else{if(this.opt.precision){f=parseFloat(f).toFixed(1);}}if(!c&&!this.opt.targetKeep){f=this.opt.targetText;}}}if(f){f=this.opt.targetFormat.toString().replace("{score}",f);}if(e.is(":input")){e.val(f);}else{e.html(f);}}},_unlock:function(){b(this).data("readonly",false).css("cursor","pointer").removeAttr("title");this.score.removeAttr("readonly","readonly");for(var c=0;c<this.opt.number;c++){this.stars.eq(c).attr("title",a._getHint.call(this,c+1));}if(this.cancel){this.cancel.css("display","");}},cancel:function(c){return this.each(function(){if(b(this).data("readonly")!==true){a[c?"click":"score"].call(this,null);this.score.removeAttr("value");}});},click:function(c){return b(this).each(function(){if(b(this).data("readonly")!==true){a._apply.call(this,c);if(!this.opt.click){a._error.call(this,'You must add the "click: function(score, evt) { }" callback.');}this.opt.click.call(this,c,{type:"click"});a._target.call(this,c);}});},destroy:function(){return b(this).each(function(){var d=b(this),c=d.data("raw");if(c){d.off(".raty").empty().css({cursor:c.style.cursor,width:c.style.width}).removeData("readonly");}else{d.data("raw",d.clone()[0]);}});},getScore:function(){var d=[],c;b(this).each(function(){c=this.score.val();d.push(c?parseFloat(c):undefined);});return(d.length>1)?d:d[0];},readOnly:function(c){return this.each(function(){var d=b(this);if(d.data("readonly")!==c){if(c){d.off(".raty").children("img").off(".raty");a._lock.call(this);}else{a._binds.call(this);a._unlock.call(this);}d.data("readonly",c);}});},reload:function(){return a.set.call(this,{});},score:function(){return arguments.length?a.setScore.apply(this,arguments):a.getScore.call(this);},set:function(c){return this.each(function(){var e=b(this),f=e.data("settings"),d=b.extend({},f,c);e.raty(d);});},setScore:function(c){return b(this).each(function(){if(b(this).data("readonly")!==true){a._apply.call(this,c);a._target.call(this,c);}});}};b.fn.raty=function(c){if(a[c]){return a[c].apply(this,Array.prototype.slice.call(arguments,1));}else{if(typeof c==="object"||!c){return a.init.apply(this,arguments);}else{b.error("Method "+c+" does not exist!");}}};b.fn.raty.defaults={cancel:false,cancelHint:"Cancel this rating!",cancelOff:"cancel-off.png",cancelOn:"cancel-on.png",cancelPlace:"left",click:undefined,half:false,halfShow:true,hints:["bad","poor","regular","good","gorgeous"],iconRange:undefined,mouseout:undefined,mouseover:undefined,noRatedMsg:"Not rated yet!",number:5,numberMax:20,path:"",precision:false,readOnly:false,round:{down:0.25,full:0.6,up:0.76},score:undefined,scoreName:"score",single:false,size:16,space:true,starHalf:"star-half.png",starOff:"star-off.png",starOn:"star-on.png",target:undefined,targetFormat:"{score}",targetKeep:false,targetText:"",targetType:"hint",width:undefined};})(jQuery);
src/main/resources/static/pages/forms/statement/scheduleDaily.html
@@ -401,7 +401,6 @@ @@ -401,7 +401,6 @@
401 $('#forms .scheduleDaily_1').html(scheduleDaily_1); 401 $('#forms .scheduleDaily_1').html(scheduleDaily_1);
402 }); 402 });
403 $.get('/realSchedule/queryUserInfo',{line:line,date:date,state:2,type:"query"},function(result){ 403 $.get('/realSchedule/queryUserInfo',{line:line,date:date,state:2,type:"query"},function(result){
404 - console.log(result);  
405 var scheduleDaily_2 = template('scheduleDaily_2',{list:result}); 404 var scheduleDaily_2 = template('scheduleDaily_2',{list:result});
406 $('#forms .scheduleDaily_2').html(scheduleDaily_2); 405 $('#forms .scheduleDaily_2').html(scheduleDaily_2);
407 }); 406 });
@@ -541,9 +540,18 @@ @@ -541,9 +540,18 @@
541 <td>{{obj.fast}}</td> 540 <td>{{obj.fast}}</td>
542 <td>{{obj.slow}}</td> 541 <td>{{obj.slow}}</td>
543 <td>{{obj.fcsj}}</td> 542 <td>{{obj.fcsj}}</td>
544 - <td>{{obj.fcsjActual}}</td> 543 + <td>{{obj.fcsjActual}}
  544 + {{if obj.bcType== "in"}}
  545 + (进)
  546 + {{/if}}
  547 + {{if obj.bcType== "out"}}
  548 + (出)
  549 + {{/if}}
  550 + </td>
545 <td>{{obj.fast0}}</td> 551 <td>{{obj.fast0}}</td>
546 - <td>{{obj.slow0}}</td> 552 + <td>{{obj.slow0}}
  553 +
  554 + </td>
547 <td colspan="2">{{obj.remarks}}</td> 555 <td colspan="2">{{obj.remarks}}</td>
548 {{if (i+1)%3 == 0}} 556 {{if (i+1)%3 == 0}}
549 <td>&nbsp;</td> 557 <td>&nbsp;</td>
src/main/resources/static/pages/forms/statement/statisticsDaily.html
@@ -247,8 +247,15 @@ @@ -247,8 +247,15 @@
247 if(date==null || date =="" ||date2==null || date2 ==""){ 247 if(date==null || date =="" ||date2==null || date2 ==""){
248 layer.msg('请选择时间段.'); 248 layer.msg('请选择时间段.');
249 }else{ 249 }else{
250 -  
251 - $get('/realSchedule/statisticsDailyTj',{gsdm:gsdm,fgsdm:fgsdm,line:line,date:date,date2:date2,xlName:xlName,type:"query"},function(result){ 250 + var params = {};
  251 + params['gsdm'] = gsdm;
  252 + params['fgsdm'] =fgsdm ;
  253 + params['line'] = line;
  254 + params['date'] = date;
  255 + params['date2'] = date2;
  256 + params['xlName'] = xlName;
  257 + params['type'] = "query";
  258 + $get('/realSchedule/statisticsDailyTj',params,function(result){
252 // 把数据填充到模版中 259 // 把数据填充到模版中
253 var tbodyHtml = template('statisticsDaily',{list:result}); 260 var tbodyHtml = template('statisticsDaily',{list:result});
254 // 把渲染好的模版html文本追加到表格中 261 // 把渲染好的模版html文本追加到表格中
@@ -264,7 +271,15 @@ @@ -264,7 +271,15 @@
264 }); 271 });
265 272
266 $("#export").on("click",function(){ 273 $("#export").on("click",function(){
267 - $get('/realSchedule/statisticsDailyTj',{gsdm:gsdm,fgsdm:fgsdm,line:line,date:date,date2:date2,xlName:xlName,type:"export"},function(result){ 274 + var params = {};
  275 + params['gsdm'] = gsdm;
  276 + params['fgsdm'] =fgsdm ;
  277 + params['line'] = line;
  278 + params['date'] = date;
  279 + params['date2'] = date2;
  280 + params['xlName'] = xlName;
  281 + params['type'] = "export";
  282 + $get('/realSchedule/statisticsDailyTj',params,function(result){
268 window.open("/downloadFile/download?fileName=统计日报"+moment(date).format("YYYYMMDD")); 283 window.open("/downloadFile/download?fileName=统计日报"+moment(date).format("YYYYMMDD"));
269 }); 284 });
270 }); 285 });
src/main/resources/static/pages/forms/statement/waybill.html
@@ -307,7 +307,7 @@ @@ -307,7 +307,7 @@
307 param[index][i] = $(this).text().split("\\")[0]; 307 param[index][i] = $(this).text().split("\\")[0];
308 }); 308 });
309 }); 309 });
310 - $post('/realSchedule/exportWaybillMore',{date:date,line:line,strs:JSON.stringify(param)},function(result){ 310 + $get('/realSchedule/exportWaybillMore',{date:date,line:line,strs:JSON.stringify(param)},function(result){
311 window.open("/downloadFile/downloadList?fileName="+result.fileName); 311 window.open("/downloadFile/downloadList?fileName="+result.fileName);
312 }); 312 });
313 }); 313 });
@@ -435,7 +435,7 @@ @@ -435,7 +435,7 @@
435 <td>{{obj.fast}}</td> 435 <td>{{obj.fast}}</td>
436 <td>{{obj.slow}}</td> 436 <td>{{obj.slow}}</td>
437 <td> 437 <td>
438 - {{if obj.fcsjActual !=null || obj.zdsjActual!=null}} 438 + {{if obj.zdsjActual!=null}}
439 {{obj.jhlc}} 439 {{obj.jhlc}}
440 {{/if}} 440 {{/if}}
441 </td> 441 </td>
src/main/resources/static/real_control_v2/assets/plugins/uikit-2.27.1/components/lightbox.min.js
1 -/*! UIkit 2.27.1 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */ 1 +/*! UIkit 2.27.1 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
2 !function(i){var t;window.UIkit&&(t=i(UIkit)),"function"==typeof define&&define.amd&&define("uikit-lightbox",["uikit"],function(){return t||i(UIkit)})}(function(i){"use strict";function t(t){if(e)return e.lightbox=t,e;e=i.$(['<div class="uk-modal">','<div class="uk-modal-dialog uk-modal-dialog-lightbox uk-slidenav-position" style="margin-left:auto;margin-right:auto;width:200px;height:200px;top:'+Math.abs(window.innerHeight/2-200)+'px;">','<a href="#" class="uk-modal-close uk-close uk-close-alt"></a>','<div class="uk-lightbox-content"></div>','<div class="uk-modal-spinner uk-hidden"></div>',"</div>","</div>"].join("")).appendTo("body"),e.dialog=e.find(".uk-modal-dialog:first"),e.content=e.find(".uk-lightbox-content:first"),e.loader=e.find(".uk-modal-spinner:first"),e.closer=e.find(".uk-close.uk-close-alt"),e.modal=i.modal(e,{modal:!1}),e.on("swipeRight swipeLeft",function(i){e.lightbox["swipeLeft"==i.type?"next":"previous"]()}).on("click","[data-lightbox-previous], [data-lightbox-next]",function(t){t.preventDefault(),e.lightbox[i.$(this).is("[data-lightbox-next]")?"next":"previous"]()}),e.on("hide.uk.modal",function(){e.content.html("")});var o={w:window.innerWidth,h:window.innerHeight};return i.$win.on("load resize orientationchange",i.Utils.debounce(function(){o.w!==window.innerWidth&&e.is(":visible")&&!i.Utils.isFullscreen()&&e.lightbox.fitSize(),o={w:window.innerWidth,h:window.innerHeight}},100)),e.lightbox=t,e}var e,o={};return i.component("lightbox",{defaults:{allowfullscreen:!0,duration:400,group:!1,keyboard:!0},index:0,items:!1,boot:function(){i.$html.on("click","[data-uk-lightbox]",function(t){t.preventDefault();var e=i.$(this);e.data("lightbox")||i.lightbox(e,i.Utils.options(e.attr("data-uk-lightbox"))),e.data("lightbox").show(e)}),i.$doc.on("keyup",function(i){if(e&&e.is(":visible")&&e.lightbox.options.keyboard)switch(i.preventDefault(),i.keyCode){case 37:e.lightbox.previous();break;case 39:e.lightbox.next()}})},init:function(){var t=[];if(this.index=0,this.siblings=[],this.element&&this.element.length){var e=this.options.group?i.$(['[data-uk-lightbox*="'+this.options.group+'"]',"[data-uk-lightbox*='"+this.options.group+"']"].join(",")):this.element;e.each(function(){var e=i.$(this);t.push({source:e.attr("href"),title:e.attr("data-title")||e.attr("title"),type:e.attr("data-lightbox-type")||"auto",link:e})}),this.index=e.index(this.element),this.siblings=t}else this.options.group&&this.options.group.length&&(this.siblings=this.options.group);this.trigger("lightbox-init",[this])},show:function(e){this.modal=t(this),this.modal.dialog.stop(),this.modal.content.stop();var o,n,s=this,h=i.$.Deferred();e=e||0,"object"==typeof e&&this.siblings.forEach(function(i,t){e[0]===i.link[0]&&(e=t)}),0>e?e=this.siblings.length-e:this.siblings[e]||(e=0),n=this.siblings[e],o={lightbox:s,source:n.source,type:n.type,index:e,promise:h,title:n.title,item:n,meta:{content:"",width:null,height:null}},this.index=e,this.modal.content.empty(),this.modal.is(":visible")||(this.modal.content.css({width:"",height:""}).empty(),this.modal.modal.show()),this.modal.loader.removeClass("uk-hidden"),h.promise().done(function(){s.data=o,s.fitSize(o)}).fail(function(){o.meta.content='<div class="uk-position-cover uk-flex uk-flex-middle uk-flex-center"><strong>Loading resource failed!</strong></div>',o.meta.width=400,o.meta.height=300,s.data=o,s.fitSize(o)}),s.trigger("showitem.uk.lightbox",[o])},fitSize:function(){var t=this,e=this.data,o=this.modal.dialog.outerWidth()-this.modal.dialog.width(),n=parseInt(this.modal.dialog.css("margin-top"),10),s=parseInt(this.modal.dialog.css("margin-bottom"),10),h=n+s,a=e.meta.content,l=t.options.duration;this.siblings.length>1&&(a=[a,'<a href="#" class="uk-slidenav uk-slidenav-contrast uk-slidenav-previous uk-hidden-touch" data-lightbox-previous></a>','<a href="#" class="uk-slidenav uk-slidenav-contrast uk-slidenav-next uk-hidden-touch" data-lightbox-next></a>'].join(""));var d,r,u=i.$("<div>&nbsp;</div>").css({opacity:0,position:"absolute",top:0,left:0,width:"100%","max-width":t.modal.dialog.css("max-width"),padding:t.modal.dialog.css("padding"),margin:t.modal.dialog.css("margin")}),c=e.meta.width,g=e.meta.height;u.appendTo("body").width(),d=u.width(),r=window.innerHeight-h,u.remove(),this.modal.dialog.find(".uk-modal-caption").remove(),e.title&&(this.modal.dialog.append('<div class="uk-modal-caption">'+e.title+"</div>"),r-=this.modal.dialog.find(".uk-modal-caption").outerHeight()),d<e.meta.width&&(g=Math.floor(g*(d/c)),c=d),g>r&&(g=Math.floor(r),c=Math.ceil(e.meta.width*(r/e.meta.height))),this.modal.content.css("opacity",0).width(c).html(a),"iframe"==e.type&&this.modal.content.find("iframe:first").height(g);var m=g+o,p=Math.floor(window.innerHeight/2-m/2)-h;0>p&&(p=0),this.modal.closer.addClass("uk-hidden"),t.modal.data("mwidth")==c&&t.modal.data("mheight")==g&&(l=0),this.modal.dialog.animate({width:c+o,height:g+o,top:p},l,"swing",function(){t.modal.loader.addClass("uk-hidden"),t.modal.content.css({width:""}).animate({opacity:1},function(){t.modal.closer.removeClass("uk-hidden")}),t.modal.data({mwidth:c,mheight:g})})},next:function(){this.show(this.siblings[this.index+1]?this.index+1:0)},previous:function(){this.show(this.siblings[this.index-1]?this.index-1:this.siblings.length-1)}}),i.plugin("lightbox","image",{init:function(i){i.on("showitem.uk.lightbox",function(i,t){if("image"==t.type||t.source&&t.source.match(/\.(jpg|jpeg|png|gif|svg)$/i)){var e=function(i,e,o){t.meta={content:'<img class="uk-responsive-width" width="'+e+'" height="'+o+'" src ="'+i+'">',width:e,height:o},t.type="image",t.promise.resolve()};if(o[t.source])e(t.source,o[t.source].width,o[t.source].height);else{var n=new Image;n.onerror=function(){t.promise.reject("Loading image failed")},n.onload=function(){o[t.source]={width:n.width,height:n.height},e(t.source,o[t.source].width,o[t.source].height)},n.src=t.source}}})}}),i.plugin("lightbox","youtube",{init:function(i){var t=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)&?(.*)/,n=/youtu\.be\/(.*)/;i.on("showitem.uk.lightbox",function(i,s){var h,a,l=function(i,t,o){s.meta={content:'<iframe src="//www.youtube.com/embed/'+i+'" width="'+t+'" height="'+o+'" style="max-width:100%;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},s.type="iframe",s.promise.resolve()};if((a=s.source.match(t))&&(h=a[2]),(a=s.source.match(n))&&(h=a[1]),h){if(o[h])l(h,o[h].width,o[h].height);else{var d=new Image,r=!1;d.onerror=function(){o[h]={width:640,height:320},l(h,o[h].width,o[h].height)},d.onload=function(){120==d.width&&90==d.height?r?(o[h]={width:640,height:320},l(h,o[h].width,o[h].height)):(r=!0,d.src="//img.youtube.com/vi/"+h+"/0.jpg"):(o[h]={width:d.width,height:d.height},l(h,d.width,d.height))},d.src="//img.youtube.com/vi/"+h+"/maxresdefault.jpg"}i.stopImmediatePropagation()}})}}),i.plugin("lightbox","vimeo",{init:function(t){var n,s=/(\/\/.*?)vimeo\.[a-z]+\/([0-9]+).*?/;t.on("showitem.uk.lightbox",function(t,h){var a,l=function(i,t,o){h.meta={content:'<iframe src="//player.vimeo.com/video/'+i+'" width="'+t+'" height="'+o+'" style="width:100%;box-sizing:border-box;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},h.type="iframe",h.promise.resolve()};(n=h.source.match(s))&&(a=n[2],o[a]?l(a,o[a].width,o[a].height):i.$.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(h.source),jsonp:"callback",dataType:"jsonp",success:function(i){o[a]={width:i.width,height:i.height},l(a,o[a].width,o[a].height)}}),t.stopImmediatePropagation())})}}),i.plugin("lightbox","video",{init:function(t){t.on("showitem.uk.lightbox",function(t,e){var n=function(i,t,o){e.meta={content:'<video class="uk-responsive-width" src="'+i+'" width="'+t+'" height="'+o+'" controls></video>',width:t,height:o},e.type="video",e.promise.resolve()};if("video"==e.type||e.source.match(/\.(mp4|webm|ogv)$/i))if(o[e.source])n(e.source,o[e.source].width,o[e.source].height);else var s=i.$('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",e.source).appendTo("body"),h=setInterval(function(){s[0].videoWidth&&(clearInterval(h),o[e.source]={width:s[0].videoWidth,height:s[0].videoHeight},n(e.source,o[e.source].width,o[e.source].height),s.remove())},20)})}}),UIkit.plugin("lightbox","iframe",{init:function(i){i.on("showitem.uk.lightbox",function(t,o){var n=function(i,t,n){o.meta={content:'<iframe class="uk-responsive-width" src="'+i+'" width="'+t+'" height="'+n+'"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:n},o.type="iframe",o.promise.resolve()};("iframe"===o.type||o.source.match(/\.(html|php)$/))&&n(o.source,i.options.width||800,i.options.height||600)})}}),i.lightbox.create=function(t,e){if(t){var o,n=[];return t.forEach(function(t){n.push(i.$.extend({source:"",title:"",type:"auto",link:!1},"string"==typeof t?{source:t}:t))}),o=i.lightbox(i.$.extend({},e,{group:n}))}},i.lightbox}); 2 !function(i){var t;window.UIkit&&(t=i(UIkit)),"function"==typeof define&&define.amd&&define("uikit-lightbox",["uikit"],function(){return t||i(UIkit)})}(function(i){"use strict";function t(t){if(e)return e.lightbox=t,e;e=i.$(['<div class="uk-modal">','<div class="uk-modal-dialog uk-modal-dialog-lightbox uk-slidenav-position" style="margin-left:auto;margin-right:auto;width:200px;height:200px;top:'+Math.abs(window.innerHeight/2-200)+'px;">','<a href="#" class="uk-modal-close uk-close uk-close-alt"></a>','<div class="uk-lightbox-content"></div>','<div class="uk-modal-spinner uk-hidden"></div>',"</div>","</div>"].join("")).appendTo("body"),e.dialog=e.find(".uk-modal-dialog:first"),e.content=e.find(".uk-lightbox-content:first"),e.loader=e.find(".uk-modal-spinner:first"),e.closer=e.find(".uk-close.uk-close-alt"),e.modal=i.modal(e,{modal:!1}),e.on("swipeRight swipeLeft",function(i){e.lightbox["swipeLeft"==i.type?"next":"previous"]()}).on("click","[data-lightbox-previous], [data-lightbox-next]",function(t){t.preventDefault(),e.lightbox[i.$(this).is("[data-lightbox-next]")?"next":"previous"]()}),e.on("hide.uk.modal",function(){e.content.html("")});var o={w:window.innerWidth,h:window.innerHeight};return i.$win.on("load resize orientationchange",i.Utils.debounce(function(){o.w!==window.innerWidth&&e.is(":visible")&&!i.Utils.isFullscreen()&&e.lightbox.fitSize(),o={w:window.innerWidth,h:window.innerHeight}},100)),e.lightbox=t,e}var e,o={};return i.component("lightbox",{defaults:{allowfullscreen:!0,duration:400,group:!1,keyboard:!0},index:0,items:!1,boot:function(){i.$html.on("click","[data-uk-lightbox]",function(t){t.preventDefault();var e=i.$(this);e.data("lightbox")||i.lightbox(e,i.Utils.options(e.attr("data-uk-lightbox"))),e.data("lightbox").show(e)}),i.$doc.on("keyup",function(i){if(e&&e.is(":visible")&&e.lightbox.options.keyboard)switch(i.preventDefault(),i.keyCode){case 37:e.lightbox.previous();break;case 39:e.lightbox.next()}})},init:function(){var t=[];if(this.index=0,this.siblings=[],this.element&&this.element.length){var e=this.options.group?i.$(['[data-uk-lightbox*="'+this.options.group+'"]',"[data-uk-lightbox*='"+this.options.group+"']"].join(",")):this.element;e.each(function(){var e=i.$(this);t.push({source:e.attr("href"),title:e.attr("data-title")||e.attr("title"),type:e.attr("data-lightbox-type")||"auto",link:e})}),this.index=e.index(this.element),this.siblings=t}else this.options.group&&this.options.group.length&&(this.siblings=this.options.group);this.trigger("lightbox-init",[this])},show:function(e){this.modal=t(this),this.modal.dialog.stop(),this.modal.content.stop();var o,n,s=this,h=i.$.Deferred();e=e||0,"object"==typeof e&&this.siblings.forEach(function(i,t){e[0]===i.link[0]&&(e=t)}),0>e?e=this.siblings.length-e:this.siblings[e]||(e=0),n=this.siblings[e],o={lightbox:s,source:n.source,type:n.type,index:e,promise:h,title:n.title,item:n,meta:{content:"",width:null,height:null}},this.index=e,this.modal.content.empty(),this.modal.is(":visible")||(this.modal.content.css({width:"",height:""}).empty(),this.modal.modal.show()),this.modal.loader.removeClass("uk-hidden"),h.promise().done(function(){s.data=o,s.fitSize(o)}).fail(function(){o.meta.content='<div class="uk-position-cover uk-flex uk-flex-middle uk-flex-center"><strong>Loading resource failed!</strong></div>',o.meta.width=400,o.meta.height=300,s.data=o,s.fitSize(o)}),s.trigger("showitem.uk.lightbox",[o])},fitSize:function(){var t=this,e=this.data,o=this.modal.dialog.outerWidth()-this.modal.dialog.width(),n=parseInt(this.modal.dialog.css("margin-top"),10),s=parseInt(this.modal.dialog.css("margin-bottom"),10),h=n+s,a=e.meta.content,l=t.options.duration;this.siblings.length>1&&(a=[a,'<a href="#" class="uk-slidenav uk-slidenav-contrast uk-slidenav-previous uk-hidden-touch" data-lightbox-previous></a>','<a href="#" class="uk-slidenav uk-slidenav-contrast uk-slidenav-next uk-hidden-touch" data-lightbox-next></a>'].join(""));var d,r,u=i.$("<div>&nbsp;</div>").css({opacity:0,position:"absolute",top:0,left:0,width:"100%","max-width":t.modal.dialog.css("max-width"),padding:t.modal.dialog.css("padding"),margin:t.modal.dialog.css("margin")}),c=e.meta.width,g=e.meta.height;u.appendTo("body").width(),d=u.width(),r=window.innerHeight-h,u.remove(),this.modal.dialog.find(".uk-modal-caption").remove(),e.title&&(this.modal.dialog.append('<div class="uk-modal-caption">'+e.title+"</div>"),r-=this.modal.dialog.find(".uk-modal-caption").outerHeight()),d<e.meta.width&&(g=Math.floor(g*(d/c)),c=d),g>r&&(g=Math.floor(r),c=Math.ceil(e.meta.width*(r/e.meta.height))),this.modal.content.css("opacity",0).width(c).html(a),"iframe"==e.type&&this.modal.content.find("iframe:first").height(g);var m=g+o,p=Math.floor(window.innerHeight/2-m/2)-h;0>p&&(p=0),this.modal.closer.addClass("uk-hidden"),t.modal.data("mwidth")==c&&t.modal.data("mheight")==g&&(l=0),this.modal.dialog.animate({width:c+o,height:g+o,top:p},l,"swing",function(){t.modal.loader.addClass("uk-hidden"),t.modal.content.css({width:""}).animate({opacity:1},function(){t.modal.closer.removeClass("uk-hidden")}),t.modal.data({mwidth:c,mheight:g})})},next:function(){this.show(this.siblings[this.index+1]?this.index+1:0)},previous:function(){this.show(this.siblings[this.index-1]?this.index-1:this.siblings.length-1)}}),i.plugin("lightbox","image",{init:function(i){i.on("showitem.uk.lightbox",function(i,t){if("image"==t.type||t.source&&t.source.match(/\.(jpg|jpeg|png|gif|svg)$/i)){var e=function(i,e,o){t.meta={content:'<img class="uk-responsive-width" width="'+e+'" height="'+o+'" src ="'+i+'">',width:e,height:o},t.type="image",t.promise.resolve()};if(o[t.source])e(t.source,o[t.source].width,o[t.source].height);else{var n=new Image;n.onerror=function(){t.promise.reject("Loading image failed")},n.onload=function(){o[t.source]={width:n.width,height:n.height},e(t.source,o[t.source].width,o[t.source].height)},n.src=t.source}}})}}),i.plugin("lightbox","youtube",{init:function(i){var t=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)&?(.*)/,n=/youtu\.be\/(.*)/;i.on("showitem.uk.lightbox",function(i,s){var h,a,l=function(i,t,o){s.meta={content:'<iframe src="//www.youtube.com/embed/'+i+'" width="'+t+'" height="'+o+'" style="max-width:100%;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},s.type="iframe",s.promise.resolve()};if((a=s.source.match(t))&&(h=a[2]),(a=s.source.match(n))&&(h=a[1]),h){if(o[h])l(h,o[h].width,o[h].height);else{var d=new Image,r=!1;d.onerror=function(){o[h]={width:640,height:320},l(h,o[h].width,o[h].height)},d.onload=function(){120==d.width&&90==d.height?r?(o[h]={width:640,height:320},l(h,o[h].width,o[h].height)):(r=!0,d.src="//img.youtube.com/vi/"+h+"/0.jpg"):(o[h]={width:d.width,height:d.height},l(h,d.width,d.height))},d.src="//img.youtube.com/vi/"+h+"/maxresdefault.jpg"}i.stopImmediatePropagation()}})}}),i.plugin("lightbox","vimeo",{init:function(t){var n,s=/(\/\/.*?)vimeo\.[a-z]+\/([0-9]+).*?/;t.on("showitem.uk.lightbox",function(t,h){var a,l=function(i,t,o){h.meta={content:'<iframe src="//player.vimeo.com/video/'+i+'" width="'+t+'" height="'+o+'" style="width:100%;box-sizing:border-box;"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:o},h.type="iframe",h.promise.resolve()};(n=h.source.match(s))&&(a=n[2],o[a]?l(a,o[a].width,o[a].height):i.$.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(h.source),jsonp:"callback",dataType:"jsonp",success:function(i){o[a]={width:i.width,height:i.height},l(a,o[a].width,o[a].height)}}),t.stopImmediatePropagation())})}}),i.plugin("lightbox","video",{init:function(t){t.on("showitem.uk.lightbox",function(t,e){var n=function(i,t,o){e.meta={content:'<video class="uk-responsive-width" src="'+i+'" width="'+t+'" height="'+o+'" controls></video>',width:t,height:o},e.type="video",e.promise.resolve()};if("video"==e.type||e.source.match(/\.(mp4|webm|ogv)$/i))if(o[e.source])n(e.source,o[e.source].width,o[e.source].height);else var s=i.$('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",e.source).appendTo("body"),h=setInterval(function(){s[0].videoWidth&&(clearInterval(h),o[e.source]={width:s[0].videoWidth,height:s[0].videoHeight},n(e.source,o[e.source].width,o[e.source].height),s.remove())},20)})}}),UIkit.plugin("lightbox","iframe",{init:function(i){i.on("showitem.uk.lightbox",function(t,o){var n=function(i,t,n){o.meta={content:'<iframe class="uk-responsive-width" src="'+i+'" width="'+t+'" height="'+n+'"'+(e.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:t,height:n},o.type="iframe",o.promise.resolve()};("iframe"===o.type||o.source.match(/\.(html|php)$/))&&n(o.source,i.options.width||800,i.options.height||600)})}}),i.lightbox.create=function(t,e){if(t){var o,n=[];return t.forEach(function(t){n.push(i.$.extend({source:"",title:"",type:"auto",link:!1},"string"==typeof t?{source:t}:t))}),o=i.lightbox(i.$.extend({},e,{group:n}))}},i.lightbox});
3 \ No newline at end of file 3 \ No newline at end of file
src/main/resources/static/real_control_v2/assets/plugins/uikit-2.27.1/components/slidenav.gradient.min.css
1 -/*! UIkit 2.27.1 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */ 1 +/*! UIkit 2.27.1 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
2 .uk-slidenav{display:inline-block;box-sizing:border-box;width:60px;height:60px;line-height:60px;color:rgba(50,50,50,.4);font-size:60px;text-align:center}.uk-slidenav:focus,.uk-slidenav:hover{outline:0;text-decoration:none;color:rgba(50,50,50,.7);cursor:pointer}.uk-slidenav:active{color:rgba(50,50,50,.9)}.uk-slidenav-previous:before{content:"\f104";font-family:FontAwesome}.uk-slidenav-next:before{content:"\f105";font-family:FontAwesome}.uk-slidenav-position{position:relative}.uk-slidenav-position .uk-slidenav{display:none;position:absolute;top:50%;z-index:1;margin-top:-30px}.uk-slidenav-position:hover .uk-slidenav{display:block}.uk-slidenav-position .uk-slidenav-previous{left:20px}.uk-slidenav-position .uk-slidenav-next{right:20px}.uk-slidenav-contrast{color:rgba(255,255,255,.5)}.uk-slidenav-contrast:focus,.uk-slidenav-contrast:hover{color:rgba(255,255,255,.7)}.uk-slidenav-contrast:active{color:rgba(255,255,255,.9)} 2 .uk-slidenav{display:inline-block;box-sizing:border-box;width:60px;height:60px;line-height:60px;color:rgba(50,50,50,.4);font-size:60px;text-align:center}.uk-slidenav:focus,.uk-slidenav:hover{outline:0;text-decoration:none;color:rgba(50,50,50,.7);cursor:pointer}.uk-slidenav:active{color:rgba(50,50,50,.9)}.uk-slidenav-previous:before{content:"\f104";font-family:FontAwesome}.uk-slidenav-next:before{content:"\f105";font-family:FontAwesome}.uk-slidenav-position{position:relative}.uk-slidenav-position .uk-slidenav{display:none;position:absolute;top:50%;z-index:1;margin-top:-30px}.uk-slidenav-position:hover .uk-slidenav{display:block}.uk-slidenav-position .uk-slidenav-previous{left:20px}.uk-slidenav-position .uk-slidenav-next{right:20px}.uk-slidenav-contrast{color:rgba(255,255,255,.5)}.uk-slidenav-contrast:focus,.uk-slidenav-contrast:hover{color:rgba(255,255,255,.7)}.uk-slidenav-contrast:active{color:rgba(255,255,255,.9)}
3 \ No newline at end of file 3 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/north/nav/safeDriving.html
1 -<div class="uk-modal ct_move_modal" id="safe_dring_list-modal" style="z-index: 99;">  
2 - <div class="uk-modal-dialog" style="width: 1100px;">  
3 - <a href="" class="uk-modal-close uk-close"></a>  
4 - <div class="uk-modal-header">  
5 - <h2>安全驾驶图像信息(当日)</h2></div>  
6 -  
7 - <div class="uk-panel uk-panel-box uk-panel-box-primary">  
8 - <form class="uk-form search-form">  
9 - <fieldset data-uk-margin>  
10 - <legend>  
11 - 数据检索  
12 - </legend>  
13 - <span class="horizontal-field">车辆</span>  
14 - <div class="uk-autocomplete uk-form autocomplete-cars" >  
15 - <input type="text" name="clzbh" placeholder="车辆自编号">  
16 - </div>  
17 - <span class="horizontal-field">异常类型</span>  
18 - <select name="yczltype">  
19 - <option value="">全部</option>  
20 - <option value="A1">手部离开方向盘</option>  
21 - <option value="A2">摄像头异常</option>  
22 - <option value="A3">未戴安全带</option>  
23 - <option value="A4">未戴袖章</option>  
24 - <option value="A5">眨眼/疲劳驾驶</option>  
25 - <option value="A6">打哈欠/打瞌睡</option>  
26 - <option value="A7">行驶中与人交谈</option>  
27 - </select>  
28 - <button class="uk-button">检索</button>  
29 - </fieldset>  
30 - </form>  
31 - </div>  
32 - <div style="height: 495px;margin:5px 0 -18px;">  
33 - <table class="ct-fixed-table uk-table uk-table-hover">  
34 - <thead>  
35 - <tr>  
36 - <th style="width: 12%;">线路</th>  
37 - <th style="width: 13%;">车辆自编号</th>  
38 - <th style="width: 13%;">设备</th>  
39 - <th style="width: 13%;">异常类型</th>  
40 - <th style="width: 17%;">时间</th>  
41 - <th style="width: 11%;">检查属性</th>  
42 - <th style="width: 11%;">图像</th>  
43 - <th>视频</th>  
44 - </tr>  
45 - </thead>  
46 - <tbody data-uk-observe>  
47 - </tbody>  
48 - </table>  
49 - </div>  
50 -  
51 - <div class="uk-modal-footer uk-text-right pagination-wrap">  
52 - </div>  
53 - </div>  
54 -  
55 - <script id="all-safe_dring-table-temp" type="text/html">  
56 - {{each array as sd i}}  
57 - <tr>  
58 - <td style="width: 14%;">{{sd.xlmc}}</td>  
59 - <td style="width: 14%;">{{sd.clzbh}}</td>  
60 - <td style="width: 13%;">{{sd.sbbh}}</td>  
61 - <td style="width: 13%;">{{sd.yczlText}}</td>  
62 - <td style="width: 10%;">{{sd.timeStr}}</td>  
63 - <td style="width: 10%;">  
64 - {{if sd.yczltype=='A1'}}  
65 - {{if sd.jctype==0}}  
66 - 双脱手  
67 - {{else if sd.jctype==1}}  
68 - 单脱手  
69 - {{/if}}  
70 - {{/if}}  
71 - </td>  
72 - <td style="width: 10%;">  
73 - <a class="image_link" href="{{sd.url}}.jpg" data-uk-lightbox="{group:'jpg_group1'}" title="{{sd.title}}">JPG</a>  
74 - </td>  
75 - <td>  
76 - <a class="image_link" href="{{sd.url}}.gif" data-uk-lightbox="{group:'gif_group2'}" title="{{sd.title}}">查看视频</a>  
77 - </td>  
78 - </tr>  
79 - {{/each}}  
80 - </script>  
81 -  
82 - <script>  
83 - (function() {  
84 - var modal = '#safe_dring_list-modal';  
85 - var form = $('.search-form', modal);  
86 - var page = 0;  
87 - var pageSize = 12;  
88 -  
89 - $(modal).on('init', function(e, data) {  
90 - e.stopPropagation();  
91 -  
92 - query();  
93 - });  
94 -  
95 - //sumit event  
96 - form.on('submit', function(e) {  
97 - e.preventDefault();  
98 - resetPagination = true;  
99 - page=0;  
100 - query();  
101 - });  
102 -  
103 - var query = function() {  
104 - scanFlag = false;  
105 - var data = form.serializeJSON();  
106 - data.page = page;  
107 - data.size = pageSize;  
108 -  
109 - gb_common.$get('/gps/safeDriv', data, function (rs) {  
110 - //数据转换  
111 - var code2Name=gb_data_basic.lineCode2NameAll(), url,stm, p;  
112 - $.each(rs.list, function(){  
113 - if(this.xlbm)  
114 - this.xlmc=code2Name[this.xlbm];  
115 - else  
116 - this.xlmc='';  
117 - stm = moment(this.ts);  
118 - this.timeStr = stm.format('YYYY-MM-DD HH:mm:ss');  
119 - this.yczlText= gb_safe_driv.safeCode[this.yczltype];  
120 - //拼接图片地址  
121 - p = (this.sbbh+'_'+this.yczltype+'_'+stm.format('YYYYMMDDHHmmss'));  
122 - url = stm.format('YYYYMMDD')+'/'+p+'/'+p;  
123 - this.url = gb_safe_driv.urlPath + url;  
124 - //title  
125 - this.title = this.clzbh+' '+stm.format('HH时mm分ss秒')+' '+this.yczlText;  
126 - });  
127 -  
128 - var bodyHtml = template('all-safe_dring-table-temp', {  
129 - array: rs.list  
130 - });  
131 - $('table tbody', modal).html(bodyHtml);  
132 - if (resetPagination)  
133 - pagination(rs.totalPages + 1, rs.page);  
134 -  
135 - //扫描图片是否存在  
136 - scanFlag = true;  
137 - scanImgIsExist();  
138 - });  
139 - };  
140 -  
141 - var scanFlag;  
142 - var scanImgIsExist = function () {  
143 - var array = $('table tbody a.image_link', modal);  
144 - var i = 0;  
145 - //匿名函数递归  
146 - (function () {  
147 - //计数  
148 - if(i >= array.length || !scanFlag){  
149 - console.log('扫描图片结束');  
150 - return;  
151 - }  
152 - var f = arguments.callee;  
153 - var $a = $(array[i]);  
154 - i ++;  
155 - var img = new Image();  
156 - img.onerror = function(){  
157 - $a.removeAttr('href').removeAttr('data-uk-lightbox').text('无').css('color', '#b8b8b8');  
158 - f();  
159 - };  
160 - img.onload = function(){  
161 - f();  
162 - };  
163 - img.src=$a.attr('href');  
164 - })();  
165 - };  
166 -  
167 - var resetPagination = true;  
168 - var pagination = function(pages, currentPage) {  
169 - var wrap = $('.pagination-wrap', modal).empty()  
170 - ,e = $('<ul class="uk-pagination"></ul>').appendTo(wrap);  
171 -  
172 - var pagination = UIkit.pagination(e, {  
173 - pages: pages,  
174 - currentPage: currentPage  
175 - });  
176 -  
177 - e.on('select.uk.pagination', function(e, pageIndex){  
178 - page = pageIndex;  
179 - query();  
180 - });  
181 -  
182 - resetPagination = false;  
183 - };  
184 - })();  
185 - </script>  
186 -</div> 1 +<div class="uk-modal ct_move_modal" id="safe_dring_list-modal" style="z-index: 99;">
  2 + <div class="uk-modal-dialog" style="width: 1100px;">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 + <div class="uk-modal-header">
  5 + <h2>安全驾驶图像信息(当日)</h2></div>
  6 +
  7 + <div class="uk-panel uk-panel-box uk-panel-box-primary">
  8 + <form class="uk-form search-form">
  9 + <fieldset data-uk-margin>
  10 + <legend>
  11 + 数据检索
  12 + </legend>
  13 + <span class="horizontal-field">车辆</span>
  14 + <div class="uk-autocomplete uk-form autocomplete-cars" >
  15 + <input type="text" name="clzbh" placeholder="车辆自编号">
  16 + </div>
  17 + <span class="horizontal-field">异常类型</span>
  18 + <select name="yczltype">
  19 + <option value="">全部</option>
  20 + <option value="A1">手部离开方向盘</option>
  21 + <option value="A2">摄像头异常</option>
  22 + <option value="A3">未戴安全带</option>
  23 + <option value="A4">未戴袖章</option>
  24 + <option value="A5">眨眼/疲劳驾驶</option>
  25 + <option value="A6">打哈欠/打瞌睡</option>
  26 + <option value="A7">行驶中与人交谈</option>
  27 + </select>
  28 + <button class="uk-button">检索</button>
  29 + </fieldset>
  30 + </form>
  31 + </div>
  32 + <div style="height: 495px;margin:5px 0 -18px;">
  33 + <table class="ct-fixed-table uk-table uk-table-hover">
  34 + <thead>
  35 + <tr>
  36 + <th style="width: 12%;">线路</th>
  37 + <th style="width: 13%;">车辆自编号</th>
  38 + <th style="width: 13%;">设备</th>
  39 + <th style="width: 13%;">异常类型</th>
  40 + <th style="width: 17%;">时间</th>
  41 + <th style="width: 11%;">检查属性</th>
  42 + <th style="width: 11%;">图像</th>
  43 + <th>视频</th>
  44 + </tr>
  45 + </thead>
  46 + <tbody data-uk-observe>
  47 + </tbody>
  48 + </table>
  49 + </div>
  50 +
  51 + <div class="uk-modal-footer uk-text-right pagination-wrap">
  52 + </div>
  53 + </div>
  54 +
  55 + <script id="all-safe_dring-table-temp" type="text/html">
  56 + {{each array as sd i}}
  57 + <tr>
  58 + <td style="width: 14%;">{{sd.xlmc}}</td>
  59 + <td style="width: 14%;">{{sd.clzbh}}</td>
  60 + <td style="width: 13%;">{{sd.sbbh}}</td>
  61 + <td style="width: 13%;">{{sd.yczlText}}</td>
  62 + <td style="width: 10%;">{{sd.timeStr}}</td>
  63 + <td style="width: 10%;">
  64 + {{if sd.yczltype=='A1'}}
  65 + {{if sd.jctype==0}}
  66 + 双脱手
  67 + {{else if sd.jctype==1}}
  68 + 单脱手
  69 + {{/if}}
  70 + {{/if}}
  71 + </td>
  72 + <td style="width: 10%;">
  73 + <a class="image_link" href="{{sd.url}}.jpg" data-uk-lightbox="{group:'jpg_group1'}" title="{{sd.title}}">JPG</a>
  74 + </td>
  75 + <td>
  76 + <a class="image_link" href="{{sd.url}}.gif" data-uk-lightbox="{group:'gif_group2'}" title="{{sd.title}}">查看视频</a>
  77 + </td>
  78 + </tr>
  79 + {{/each}}
  80 + </script>
  81 +
  82 + <script>
  83 + (function() {
  84 + var modal = '#safe_dring_list-modal';
  85 + var form = $('.search-form', modal);
  86 + var page = 0;
  87 + var pageSize = 12;
  88 +
  89 + $(modal).on('init', function(e, data) {
  90 + e.stopPropagation();
  91 +
  92 + query();
  93 + });
  94 +
  95 + //sumit event
  96 + form.on('submit', function(e) {
  97 + e.preventDefault();
  98 + resetPagination = true;
  99 + page=0;
  100 + query();
  101 + });
  102 +
  103 + var query = function() {
  104 + scanFlag = false;
  105 + var data = form.serializeJSON();
  106 + data.page = page;
  107 + data.size = pageSize;
  108 +
  109 + gb_common.$get('/gps/safeDriv', data, function (rs) {
  110 + //数据转换
  111 + var code2Name=gb_data_basic.lineCode2NameAll(), url,stm, p;
  112 + $.each(rs.list, function(){
  113 + if(this.xlbm)
  114 + this.xlmc=code2Name[this.xlbm];
  115 + else
  116 + this.xlmc='';
  117 + stm = moment(this.ts);
  118 + this.timeStr = stm.format('YYYY-MM-DD HH:mm:ss');
  119 + this.yczlText= gb_safe_driv.safeCode[this.yczltype];
  120 + //拼接图片地址
  121 + p = (this.sbbh+'_'+this.yczltype+'_'+stm.format('YYYYMMDDHHmmss'));
  122 + url = stm.format('YYYYMMDD')+'/'+p+'/'+p;
  123 + this.url = gb_safe_driv.urlPath + url;
  124 + //title
  125 + this.title = this.clzbh+' '+stm.format('HH时mm分ss秒')+' '+this.yczlText;
  126 + });
  127 +
  128 + var bodyHtml = template('all-safe_dring-table-temp', {
  129 + array: rs.list
  130 + });
  131 + $('table tbody', modal).html(bodyHtml);
  132 + if (resetPagination)
  133 + pagination(rs.totalPages + 1, rs.page);
  134 +
  135 + //扫描图片是否存在
  136 + scanFlag = true;
  137 + scanImgIsExist();
  138 + });
  139 + };
  140 +
  141 + var scanFlag;
  142 + var scanImgIsExist = function () {
  143 + var array = $('table tbody a.image_link', modal);
  144 + var i = 0;
  145 + //匿名函数递归
  146 + (function () {
  147 + //计数
  148 + if(i >= array.length || !scanFlag){
  149 + console.log('扫描图片结束');
  150 + return;
  151 + }
  152 + var f = arguments.callee;
  153 + var $a = $(array[i]);
  154 + i ++;
  155 + var img = new Image();
  156 + img.onerror = function(){
  157 + $a.removeAttr('href').removeAttr('data-uk-lightbox').text('无').css('color', '#b8b8b8');
  158 + f();
  159 + };
  160 + img.onload = function(){
  161 + f();
  162 + };
  163 + img.src=$a.attr('href');
  164 + })();
  165 + };
  166 +
  167 + var resetPagination = true;
  168 + var pagination = function(pages, currentPage) {
  169 + var wrap = $('.pagination-wrap', modal).empty()
  170 + ,e = $('<ul class="uk-pagination"></ul>').appendTo(wrap);
  171 +
  172 + var pagination = UIkit.pagination(e, {
  173 + pages: pages,
  174 + currentPage: currentPage
  175 + });
  176 +
  177 + e.on('select.uk.pagination', function(e, pageIndex){
  178 + page = pageIndex;
  179 + query();
  180 + });
  181 +
  182 + resetPagination = false;
  183 + };
  184 + })();
  185 + </script>
  186 +</div>
src/test/java/com/bsth/service/schedule/BaseTest.java 0 → 100644
  1 +package com.bsth.service.schedule;
  2 +
  3 +import org.junit.runner.RunWith;
  4 +import org.springframework.boot.test.SpringApplicationConfiguration;
  5 +import org.springframework.test.context.ActiveProfiles;
  6 +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  7 +
  8 +/**
  9 + * 基础测试类。
  10 + */
  11 +@RunWith(SpringJUnit4ClassRunner.class)
  12 +@SpringApplicationConfiguration(classes = ScheduleTestApp.class)
  13 +@ActiveProfiles("scheduletest")
  14 +//@WebIntegrationTest({"server.port=0","management.port=0"})
  15 +public class BaseTest {
  16 +}
src/test/java/com/bsth/service/schedule/ScheduleTestApp.java 0 → 100644
  1 +package com.bsth.service.schedule;
  2 +
  3 +import com.bsth.service.schedule.impl.SchedulePlanRuleResultServiceImpl;
  4 +import com.bsth.service.schedule.impl.SchedulePlanServiceImpl;
  5 +import com.bsth.service.schedule.rules.MyDroolsConfiguration;
  6 +import com.bsth.service.schedule.utils.DataToolsServiceImpl;
  7 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  8 +import org.springframework.boot.orm.jpa.EntityScan;
  9 +import org.springframework.context.annotation.ComponentScan;
  10 +import org.springframework.context.annotation.Configuration;
  11 +import org.springframework.context.annotation.FilterType;
  12 +import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
  13 +
  14 +/**
  15 + * 基础测试类(用于计划调度模块测试测试)。
  16 + * 配置计划调度的模块的用到的entity,repository,service
  17 + *
  18 + * 注意:测试环境下测试类 TestApp 和springdata的类不在统一级包里,必须指定EnableJpaRepositories
  19 + */
  20 +@Configuration
  21 +@EntityScan(
  22 + basePackages = {"com.bsth.entity"}
  23 +)
  24 +@ComponentScan(
  25 + basePackages = {"com.bsth.repository", "com.bsth.service"},
  26 + useDefaultFilters = false,
  27 + includeFilters = {
  28 + @ComponentScan.Filter(
  29 + type = FilterType.ASSIGNABLE_TYPE,
  30 + value = SchedulePlanRuleResultServiceImpl.class
  31 + ),
  32 + @ComponentScan.Filter(
  33 + type = FilterType.ASSIGNABLE_TYPE,
  34 + value = SchedulePlanServiceImpl.class
  35 + ),
  36 + @ComponentScan.Filter(
  37 + type = FilterType.ASSIGNABLE_TYPE,
  38 + value = MyDroolsConfiguration.class
  39 + ),
  40 + @ComponentScan.Filter(
  41 + type = FilterType.ASSIGNABLE_TYPE,
  42 + value = DataToolsServiceImpl.class
  43 + )
  44 + }
  45 +)
  46 +@EnableJpaRepositories(
  47 + basePackages = {"com.bsth.repository"}
  48 +)
  49 +@SpringBootApplication
  50 +public class ScheduleTestApp {
  51 +}
src/test/java/com/bsth/service/schedule/rules/DroolsRulesTest.java deleted 100644 → 0
1 -package com.bsth.service.schedule.rules;  
2 -  
3 -import com.bsth.Application;  
4 -import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input;  
5 -import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output;  
6 -import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input;  
7 -import com.bsth.service.schedule.rules.ttinfo.TTInfoCalcuParam_input;  
8 -import com.bsth.service.schedule.rules.ttinfo.TTInfoResults_output;  
9 -import com.bsth.service.schedule.rules.ttinfo.TTInfo_input;  
10 -import org.joda.time.DateTime;  
11 -import org.junit.Test;  
12 -import org.junit.runner.RunWith;  
13 -import org.kie.api.KieBase;  
14 -import org.kie.api.runtime.KieSession;  
15 -import org.slf4j.Logger;  
16 -import org.slf4j.LoggerFactory;  
17 -import org.springframework.beans.factory.annotation.Autowired;  
18 -import org.springframework.boot.test.SpringApplicationConfiguration;  
19 -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
20 -  
21 -import java.util.Arrays;  
22 -  
23 -@RunWith(SpringJUnit4ClassRunner.class)  
24 -@SpringApplicationConfiguration(classes = {Application.class})  
25 -public class DroolsRulesTest {  
26 -  
27 - /** 日志记录器 */  
28 - private final static Logger logger = LoggerFactory.getLogger(DroolsRulesTest.class);  
29 -  
30 - @Autowired  
31 - private KieBase kieBase;  
32 -  
33 -// @Test  
34 -// public void helloWorldDrlTest() throws Exception {  
35 -// // 1、创建session,内部配置的是stateful  
36 -// KieSession session = kieBase.newKieSession();  
37 -//  
38 -// // 1.1 设置gloable对象,在drl中通过别名使用  
39 -// List<String> gloableList = new ArrayList<String>();  
40 -// session.setGlobal("list", gloableList);  
41 -//  
42 -// // 1.2 可以设置一些监听器,再议  
43 -//  
44 -// // 2、创建fact对象  
45 -// Message message = new Message();  
46 -// message.setMessage("Hello World");  
47 -// message.setStatus(Message.HELLO);  
48 -// session.insert(message);  
49 -//  
50 -// // 3、执行rule  
51 -// session.fireAllRules();  
52 -//  
53 -// System.out.println(gloableList);  
54 -//  
55 -// // 4、执行完毕销毁,有日志的也要关闭  
56 -// session.dispose();  
57 -// }  
58 -  
59 -// @Test  
60 - public void ttinfoDrlTest() throws Exception {  
61 - logger.info("------------ttinfoDrlTest 测试---------------");  
62 -  
63 - // 1、创建session,内部配置的是stateful  
64 - KieSession session = kieBase.newKieSession();  
65 -  
66 - // 1.1 设置gloable对象,在drl中通过别人使用  
67 - session.setGlobal("log", logger);  
68 - TTInfoResults_output ttInfoResults_output = new TTInfoResults_output();  
69 - session.setGlobal("results", ttInfoResults_output);  
70 -  
71 - // 1.2 可以设置一些监听器,再议  
72 -  
73 - // 2、创建fact对象  
74 - TTInfoCalcuParam_input ttInfoCalcuParam_input = new TTInfoCalcuParam_input(  
75 - new DateTime(2016, 8, 1, 0, 0),  
76 - new DateTime(2016, 8, 10, 0, 0),  
77 - "1"  
78 - );  
79 -  
80 -  
81 - TTInfo_input ttInfo_input1 = new TTInfo_input();  
82 - ttInfo_input1.setTtInfoId("1");  
83 - ttInfo_input1.setXlId("1");  
84 - ttInfo_input1.setWeekdays(Arrays.asList(true, true, true, true, true, false, false));  
85 - ttInfo_input1.getSpecialDays().add(new DateTime(2016, 8, 1, 0, 0));  
86 - ttInfo_input1.setUpdateDate(new DateTime(2016, 1, 1, 0, 0));  
87 - ttInfo_input1.setIsEnable(true);  
88 - ttInfo_input1.setQyDate(new DateTime(2016, 1, 1, 0, 0));  
89 -  
90 - TTInfo_input ttInfo_input1_2 = new TTInfo_input();  
91 - ttInfo_input1_2.setTtInfoId("2");  
92 - ttInfo_input1_2.setXlId("1");  
93 - ttInfo_input1_2.setWeekdays(Arrays.asList(true, false, false, false, false, true, false));  
94 - ttInfo_input1_2.getSpecialDays().add(new DateTime(2016, 8, 11, 0, 0));  
95 - ttInfo_input1_2.setUpdateDate(new DateTime(2015, 2, 1, 0, 0));  
96 - ttInfo_input1_2.setIsEnable(true);  
97 - ttInfo_input1_2.setQyDate(new DateTime(2016, 1, 1, 0, 0));  
98 -  
99 -  
100 - TTInfoCalcuParam_input ttInfoCalcuParam_inpu2 = new TTInfoCalcuParam_input(  
101 - new DateTime(2016, 8, 1, 0, 0),  
102 - new DateTime(2016, 8, 10, 0, 0),  
103 - "2"  
104 - );  
105 -  
106 - TTInfo_input ttInfo_input2 = new TTInfo_input();  
107 - ttInfo_input2.setTtInfoId("2");  
108 - ttInfo_input2.setXlId("2");  
109 - ttInfo_input2.setWeekdays(Arrays.asList(true, false, false, false, false, true, false));  
110 - ttInfo_input2.getSpecialDays().add(new DateTime(2016, 8, 11, 0, 0));  
111 - ttInfo_input2.setUpdateDate(new DateTime(2016, 1, 1, 0, 0));  
112 - ttInfo_input2.setIsEnable(true);  
113 - ttInfo_input2.setQyDate(new DateTime(2016, 1, 1, 0, 0));  
114 -  
115 - session.insert(ttInfoCalcuParam_input);  
116 - session.insert(ttInfo_input1);  
117 - session.insert(ttInfo_input1_2);  
118 - session.insert(ttInfoCalcuParam_inpu2);  
119 - session.insert(ttInfo_input2);  
120 -  
121 -  
122 -  
123 - // 3、执行rule  
124 - session.fireAllRules();  
125 -  
126 - // 4、执行完毕销毁,有日志的也要关闭  
127 - session.dispose();  
128 -  
129 - // 打印global结果  
130 - logger.info(ttInfoResults_output.showTTInfoDesc1());  
131 -  
132 - }  
133 -  
134 - @Test  
135 - public void shiftloopDrlTest() throws Exception {  
136 - // 1、创建session,内部配置的是stateful  
137 - KieSession session = kieBase.newKieSession();  
138 -  
139 - // 1.1 设置gloable对象,在drl中通过别名使用  
140 - ScheduleResults_output scheduleResults_output = new ScheduleResults_output();  
141 - session.setGlobal("scheduleResult", scheduleResults_output);  
142 -  
143 - // 1.2 可以设置一些监听器,再议  
144 -  
145 - // 2、创建fact对象  
146 -  
147 - ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input();  
148 - scheduleCalcuParam_input.setFromDate(new DateTime(2016, 8, 1, 0, 0));  
149 - scheduleCalcuParam_input.setToDate(new DateTime(2016, 8, 10, 0, 0));  
150 -  
151 - ScheduleRule_input scheduleRule_input1 = new ScheduleRule_input();  
152 - scheduleRule_input1.setRuleId("1");  
153 - scheduleRule_input1.setQyrq(new DateTime(2016, 7, 22, 0, 0));  
154 - scheduleRule_input1.getGuideboardIds().addAll(Arrays.asList(  
155 - "9", "9" , "8" ,"8" ,"7" ,"7" ,"6" ,"6", "5", "5", "4", "4", "3", "3", "2", "2", "1", "1"));  
156 - scheduleRule_input1.setStartGbdIndex(3);  
157 - scheduleRule_input1.getEmployeeConfigIds().addAll(Arrays.asList("1", "2"));  
158 - scheduleRule_input1.setStartEIndex(1);  
159 - scheduleRule_input1.setCarConfigId("1");  
160 -  
161 -// ScheduleRule_input scheduleRule_input2 = new ScheduleRule_input();  
162 -// scheduleRule_input2.setRuleId(2L);  
163 -// scheduleRule_input2.setQyrq(new DateTime(2016, 7, 22, 0, 0));  
164 -// scheduleRule_input2.getGuideboardIds().addAll(Arrays.asList(  
165 -// 1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L, 6L, 6L, 7L, 7L, 8L, 8L, 9L, 9L, 10L, 10L,  
166 -// 11L, 11L, 12L, 12L, 13L, 13L));  
167 -// scheduleRule_input2.setStartGbdIndex(7);  
168 -// scheduleRule_input2.getEmployeeConfigIds().addAll(Arrays.asList(11L, 12L));  
169 -// scheduleRule_input2.setStartEIndex(1);  
170 -// scheduleRule_input2.setCarConfigId(2L);  
171 -  
172 - session.insert(scheduleCalcuParam_input);  
173 - session.insert(scheduleRule_input1);  
174 -// session.insert(scheduleRule_input2);  
175 -  
176 -  
177 - // 3、执行rule  
178 - session.fireAllRules();  
179 -  
180 - // 4、执行完毕销毁,有日志的也要关闭  
181 - session.dispose();  
182 -  
183 - System.out.println(scheduleResults_output.showGuideboardDesc1());  
184 -  
185 - }  
186 -}  
src/test/java/com/bsth/service/schedule/rules/DroolsRulesTest2.java deleted 100644 → 0
1 -package com.bsth.service.schedule.rules;  
2 -  
3 -import com.bsth.Application;  
4 -import org.junit.runner.RunWith;  
5 -import org.kie.api.KieBase;  
6 -import org.springframework.beans.factory.annotation.Autowired;  
7 -import org.springframework.boot.test.SpringApplicationConfiguration;  
8 -import org.springframework.context.annotation.ComponentScan;  
9 -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
10 -  
11 -/**  
12 - * 测试类。  
13 - */  
14 -@RunWith(SpringJUnit4ClassRunner.class)  
15 -@SpringApplicationConfiguration(classes = {Application.class})  
16 -@ComponentScan(basePackages = {"com.bsth.entity"})  
17 -public class DroolsRulesTest2 {  
18 - @Autowired  
19 - private KieBase kieBase;  
20 -  
21 - @org.junit.Test  
22 - public void test1() throws Exception {  
23 - System.out.println("dfdfdfdfd");  
24 - }  
25 -  
26 -}  
src/test/java/com/bsth/service/schedule/rules/RuleTest1.java 0 → 100644
  1 +package com.bsth.service.schedule.rules;
  2 +
  3 +import com.bsth.entity.sys.SysUser;
  4 +import com.bsth.repository.sys.SysUserRepository;
  5 +import com.bsth.service.schedule.BaseTest;
  6 +import com.vividsolutions.jts.util.Assert;
  7 +import org.dbunit.database.DatabaseConnection;
  8 +import org.dbunit.database.IDatabaseConnection;
  9 +import org.dbunit.dataset.IDataSet;
  10 +import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
  11 +import org.dbunit.operation.DatabaseOperation;
  12 +import org.junit.After;
  13 +import org.junit.Before;
  14 +import org.slf4j.Logger;
  15 +import org.slf4j.LoggerFactory;
  16 +import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.core.io.ClassPathResource;
  18 +import org.springframework.core.io.Resource;
  19 +
  20 +import javax.sql.DataSource;
  21 +
  22 +public class RuleTest1 extends BaseTest {
  23 + /** 日志记录器 */
  24 + private static final Logger logger = LoggerFactory.getLogger(RuleTest1.class);
  25 +
  26 + @Autowired
  27 + private DataSource dataSource;
  28 +
  29 + @Autowired
  30 + private SysUserRepository sysUserRepository;
  31 +
  32 + /**
  33 + * 初始化数据。
  34 + */
  35 + @Before
  36 + public void initData() throws Exception {
  37 + logger.info("载入数据......");
  38 +
  39 + // 获取数据库连接
  40 + IDatabaseConnection iDatabaseConnection = new DatabaseConnection(dataSource.getConnection());
  41 + // 获取Dbunit数据源
  42 + Resource res = new ClassPathResource("testdata/d1.xml");
  43 + FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();
  44 + flatXmlDataSetBuilder.setColumnSensing(false);
  45 + flatXmlDataSetBuilder.setCaseSensitiveTableNames(false);
  46 + IDataSet iDataSet = flatXmlDataSetBuilder.build(res.getInputStream());
  47 +
  48 + // 载入数据
  49 + DatabaseOperation.CLEAN_INSERT.execute(iDatabaseConnection, iDataSet);
  50 + }
  51 +
  52 + /**
  53 + * 清除数据。
  54 + */
  55 + @After
  56 + public void destoryData() throws Exception {
  57 + logger.info("清除数据......");
  58 + // 获取数据库连接
  59 + IDatabaseConnection iDatabaseConnection = new DatabaseConnection(dataSource.getConnection());
  60 + // 获取Dbunit数据源
  61 + Resource res = new ClassPathResource("testdata/d1.xml");
  62 + FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();
  63 + flatXmlDataSetBuilder.setColumnSensing(false);
  64 + flatXmlDataSetBuilder.setCaseSensitiveTableNames(false);
  65 + IDataSet iDataSet = flatXmlDataSetBuilder.build(res.getInputStream());
  66 +
  67 + // 清除数据
  68 + DatabaseOperation.DELETE_ALL.execute(iDatabaseConnection, iDataSet);
  69 + }
  70 +
  71 + @org.junit.Test
  72 + public void t1() {
  73 + logger.info("t1()测试......");
  74 + SysUser sysUser = sysUserRepository.findOne(1);
  75 + Assert.equals("admin", sysUser.getUserName());
  76 + }
  77 +}
  78 +
  79 +//
  80 +//
  81 +//package com.bsth.service.schedule.rules;
  82 +//
  83 +// import com.bsth.Application;
  84 +// import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input;
  85 +// import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output;
  86 +// import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input;
  87 +// import com.bsth.service.schedule.rules.ttinfo.TTInfoCalcuParam_input;
  88 +// import com.bsth.service.schedule.rules.ttinfo.TTInfoResults_output;
  89 +// import com.bsth.service.schedule.rules.ttinfo.TTInfo_input;
  90 +// import org.joda.time.DateTime;
  91 +// import org.junit.Test;
  92 +// import org.junit.runner.RunWith;
  93 +// import org.kie.api.KieBase;
  94 +// import org.kie.api.runtime.KieSession;
  95 +// import org.slf4j.Logger;
  96 +// import org.slf4j.LoggerFactory;
  97 +// import org.springframework.beans.factory.annotation.Autowired;
  98 +// import org.springframework.boot.test.SpringApplicationConfiguration;
  99 +// import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  100 +//
  101 +// import java.util.Arrays;
  102 +//
  103 +//@RunWith(SpringJUnit4ClassRunner.class)
  104 +//@SpringApplicationConfiguration(classes = {Application.class})
  105 +//public class DroolsRulesTest {
  106 +//
  107 +// /** 日志记录器 */
  108 +// private final static Logger logger = LoggerFactory.getLogger(DroolsRulesTest.class);
  109 +//
  110 +// @Autowired
  111 +// private KieBase kieBase;
  112 +//
  113 +//// @Test
  114 +//// public void helloWorldDrlTest() throws Exception {
  115 +//// // 1、创建session,内部配置的是stateful
  116 +//// KieSession session = kieBase.newKieSession();
  117 +////
  118 +//// // 1.1 设置gloable对象,在drl中通过别名使用
  119 +//// List<String> gloableList = new ArrayList<String>();
  120 +//// session.setGlobal("list", gloableList);
  121 +////
  122 +//// // 1.2 可以设置一些监听器,再议
  123 +////
  124 +//// // 2、创建fact对象
  125 +//// Message message = new Message();
  126 +//// message.setMessage("Hello World");
  127 +//// message.setStatus(Message.HELLO);
  128 +//// session.insert(message);
  129 +////
  130 +//// // 3、执行rule
  131 +//// session.fireAllRules();
  132 +////
  133 +//// System.out.println(gloableList);
  134 +////
  135 +//// // 4、执行完毕销毁,有日志的也要关闭
  136 +//// session.dispose();
  137 +//// }
  138 +//
  139 +// // @Test
  140 +// public void ttinfoDrlTest() throws Exception {
  141 +// logger.info("------------ttinfoDrlTest 测试---------------");
  142 +//
  143 +// // 1、创建session,内部配置的是stateful
  144 +// KieSession session = kieBase.newKieSession();
  145 +//
  146 +// // 1.1 设置gloable对象,在drl中通过别人使用
  147 +// session.setGlobal("log", logger);
  148 +// TTInfoResults_output ttInfoResults_output = new TTInfoResults_output();
  149 +// session.setGlobal("results", ttInfoResults_output);
  150 +//
  151 +// // 1.2 可以设置一些监听器,再议
  152 +//
  153 +// // 2、创建fact对象
  154 +// TTInfoCalcuParam_input ttInfoCalcuParam_input = new TTInfoCalcuParam_input(
  155 +// new DateTime(2016, 8, 1, 0, 0),
  156 +// new DateTime(2016, 8, 10, 0, 0),
  157 +// "1"
  158 +// );
  159 +//
  160 +//
  161 +// TTInfo_input ttInfo_input1 = new TTInfo_input();
  162 +// ttInfo_input1.setTtInfoId("1");
  163 +// ttInfo_input1.setXlId("1");
  164 +// ttInfo_input1.setWeekdays(Arrays.asList(true, true, true, true, true, false, false));
  165 +// ttInfo_input1.getSpecialDays().add(new DateTime(2016, 8, 1, 0, 0));
  166 +// ttInfo_input1.setUpdateDate(new DateTime(2016, 1, 1, 0, 0));
  167 +// ttInfo_input1.setIsEnable(true);
  168 +// ttInfo_input1.setQyDate(new DateTime(2016, 1, 1, 0, 0));
  169 +//
  170 +// TTInfo_input ttInfo_input1_2 = new TTInfo_input();
  171 +// ttInfo_input1_2.setTtInfoId("2");
  172 +// ttInfo_input1_2.setXlId("1");
  173 +// ttInfo_input1_2.setWeekdays(Arrays.asList(true, false, false, false, false, true, false));
  174 +// ttInfo_input1_2.getSpecialDays().add(new DateTime(2016, 8, 11, 0, 0));
  175 +// ttInfo_input1_2.setUpdateDate(new DateTime(2015, 2, 1, 0, 0));
  176 +// ttInfo_input1_2.setIsEnable(true);
  177 +// ttInfo_input1_2.setQyDate(new DateTime(2016, 1, 1, 0, 0));
  178 +//
  179 +//
  180 +// TTInfoCalcuParam_input ttInfoCalcuParam_inpu2 = new TTInfoCalcuParam_input(
  181 +// new DateTime(2016, 8, 1, 0, 0),
  182 +// new DateTime(2016, 8, 10, 0, 0),
  183 +// "2"
  184 +// );
  185 +//
  186 +// TTInfo_input ttInfo_input2 = new TTInfo_input();
  187 +// ttInfo_input2.setTtInfoId("2");
  188 +// ttInfo_input2.setXlId("2");
  189 +// ttInfo_input2.setWeekdays(Arrays.asList(true, false, false, false, false, true, false));
  190 +// ttInfo_input2.getSpecialDays().add(new DateTime(2016, 8, 11, 0, 0));
  191 +// ttInfo_input2.setUpdateDate(new DateTime(2016, 1, 1, 0, 0));
  192 +// ttInfo_input2.setIsEnable(true);
  193 +// ttInfo_input2.setQyDate(new DateTime(2016, 1, 1, 0, 0));
  194 +//
  195 +// session.insert(ttInfoCalcuParam_input);
  196 +// session.insert(ttInfo_input1);
  197 +// session.insert(ttInfo_input1_2);
  198 +// session.insert(ttInfoCalcuParam_inpu2);
  199 +// session.insert(ttInfo_input2);
  200 +//
  201 +//
  202 +//
  203 +// // 3、执行rule
  204 +// session.fireAllRules();
  205 +//
  206 +// // 4、执行完毕销毁,有日志的也要关闭
  207 +// session.dispose();
  208 +//
  209 +// // 打印global结果
  210 +// logger.info(ttInfoResults_output.showTTInfoDesc1());
  211 +//
  212 +// }
  213 +//
  214 +// @Test
  215 +// public void shiftloopDrlTest() throws Exception {
  216 +// // 1、创建session,内部配置的是stateful
  217 +// KieSession session = kieBase.newKieSession();
  218 +//
  219 +// // 1.1 设置gloable对象,在drl中通过别名使用
  220 +// ScheduleResults_output scheduleResults_output = new ScheduleResults_output();
  221 +// session.setGlobal("scheduleResult", scheduleResults_output);
  222 +//
  223 +// // 1.2 可以设置一些监听器,再议
  224 +//
  225 +// // 2、创建fact对象
  226 +//
  227 +// ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input();
  228 +// scheduleCalcuParam_input.setFromDate(new DateTime(2016, 8, 1, 0, 0));
  229 +// scheduleCalcuParam_input.setToDate(new DateTime(2016, 8, 10, 0, 0));
  230 +//
  231 +// ScheduleRule_input scheduleRule_input1 = new ScheduleRule_input();
  232 +// scheduleRule_input1.setRuleId("1");
  233 +// scheduleRule_input1.setQyrq(new DateTime(2016, 7, 22, 0, 0));
  234 +// scheduleRule_input1.getGuideboardIds().addAll(Arrays.asList(
  235 +// "9", "9" , "8" ,"8" ,"7" ,"7" ,"6" ,"6", "5", "5", "4", "4", "3", "3", "2", "2", "1", "1"));
  236 +// scheduleRule_input1.setStartGbdIndex(3);
  237 +// scheduleRule_input1.getEmployeeConfigIds().addAll(Arrays.asList("1", "2"));
  238 +// scheduleRule_input1.setStartEIndex(1);
  239 +// scheduleRule_input1.setCarConfigId("1");
  240 +//
  241 +//// ScheduleRule_input scheduleRule_input2 = new ScheduleRule_input();
  242 +//// scheduleRule_input2.setRuleId(2L);
  243 +//// scheduleRule_input2.setQyrq(new DateTime(2016, 7, 22, 0, 0));
  244 +//// scheduleRule_input2.getGuideboardIds().addAll(Arrays.asList(
  245 +//// 1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L, 6L, 6L, 7L, 7L, 8L, 8L, 9L, 9L, 10L, 10L,
  246 +//// 11L, 11L, 12L, 12L, 13L, 13L));
  247 +//// scheduleRule_input2.setStartGbdIndex(7);
  248 +//// scheduleRule_input2.getEmployeeConfigIds().addAll(Arrays.asList(11L, 12L));
  249 +//// scheduleRule_input2.setStartEIndex(1);
  250 +//// scheduleRule_input2.setCarConfigId(2L);
  251 +//
  252 +// session.insert(scheduleCalcuParam_input);
  253 +// session.insert(scheduleRule_input1);
  254 +//// session.insert(scheduleRule_input2);
  255 +//
  256 +//
  257 +// // 3、执行rule
  258 +// session.fireAllRules();
  259 +//
  260 +// // 4、执行完毕销毁,有日志的也要关闭
  261 +// session.dispose();
  262 +//
  263 +// System.out.println(scheduleResults_output.showGuideboardDesc1());
  264 +//
  265 +// }
  266 +//}
  267 +
src/test/java/com/bsth/service/schedule/rules/Test.java deleted 100644 → 0
1 -package com.bsth.service.schedule.rules;  
2 -  
3 -import org.apache.tika.Tika;  
4 -  
5 -import java.io.File;  
6 -  
7 -/**  
8 - * Created by xu on 17/1/3.  
9 - */  
10 -public class Test {  
11 - public static void main(String[] args) throws Exception {  
12 - Tika tika = new Tika();  
13 - File file = new File("/Users/xu/Downloads/排班规则练习1.xls");  
14 -  
15 - // application/vnd.ms-excel  
16 - // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet  
17 -  
18 - String detecttype = tika.detect(file);  
19 - System.out.println(detecttype);  
20 -  
21 -  
22 - }  
23 -}  
src/test/resources/application-scheduletest.properties 0 → 100644
  1 +#嵌入式tomcat配置
  2 +#server.port=9088
  3 +#management.port= 9001
  4 +#management.address= 127.0.0.1
  5 +
  6 +#JPA配置
  7 +spring.jpa.hibernate.ddl-auto= update
  8 +spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
  9 +spring.jpa.database= MYSQL
  10 +spring.jpa.show-sql= true
  11 +
  12 +#数据库连接池配置
  13 +spring.datasource.driver-class-name= com.mysql.jdbc.Driver
  14 +spring.datasource.url= jdbc:mysql://127.0.0.1/test_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
  15 +spring.datasource.username= root
  16 +spring.datasource.password=
  17 +
  18 +#spring.datasource.driver-class-name= org.h2.Driver
  19 +#spring.datasource.url= jdbc:h2:mem:bookstore;DB_CLOSE_ON_EXIT=FALSE
  20 +#spring.datasource.username= sa
  21 +#spring.datasource.password=
  22 +
  23 +spring.datasource.max-active=100
  24 +spring.datasource.max-idle=8
  25 +spring.datasource.min-idle=8
  26 +spring.datasource.initial-size=5
  27 +
  28 +spring.datasource.test-on-borrow=true
  29 +spring.datasource.test-on-connect=true
  30 +spring.datasource.test-on-return=true
  31 +spring.datasource.test-while-idle=true
  32 +spring.datasource.validation-query=select 1
  33 +
src/test/resources/datatools/config-scheduletest.properties 0 → 100644
  1 +# 配置数据导入导出用到的配置信息
  2 +
  3 +# 1、kettle配置文件路径(类路径)
  4 +datatools.kettle_properties=/datatools/kettle.properties
  5 +# 2、ktr文件通用配置变量(数据库连接,根据不同的环境需要修正)
  6 +#数据库ip地址
  7 +datatools.kvars_dbip=127.0.0.1
  8 +#数据库用户名
  9 +datatools.kvars_dbuname=root
  10 +#数据库密码
  11 +datatools.kvars_dbpwd=
  12 +#数据库库名
  13 +datatools.kvars_dbdname=qp_control
  14 +
  15 +# 3、上传数据配置信息
  16 +# 上传文件目录配置(根据不同的环境需要修正)
  17 +datatools.fileupload_dir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files
  18 +# ktr转换文件,中配置的错误输出目录(根据不同的环境需要修正)
  19 +datatools.trans_errordir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files/erroroutput
  20 +# 临时输出文件目录
  21 +datatools.trans_tempdir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files/temp
  22 +# 模版文件目录
  23 +datatools.trans_templatedir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files/template
  24 +
  25 +##---------------------------- 导入数据ktr ----------------------------##
  26 +# 车辆信息导入ktr转换
  27 +datatools.cars_datainputktr=/datatools/ktrs/carsDataInput.ktr
  28 +# 人员信息导入
  29 +datatools.employees_datainputktr=/datatools/ktrs/employeesDataInput.ktr
  30 +# 路牌信息导入
  31 +datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr
  32 +# 时刻表基础信息导入
  33 +datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr
  34 +# 时刻表明细信息导入(元数据)
  35 +datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailDataInputMetaData.ktr
  36 +# 时刻表明细编辑用数据
  37 +datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr
  38 +# 时刻表明细信息导入
  39 +datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr
  40 +# 时刻表明细信息导入2
  41 +datatools.ttinfodetail_datainputktr2=/datatools/ktrs/ttinfodetailDataInput2.ktr
  42 +
  43 +# 车辆配置信息导入
  44 +datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr
  45 +# 人员配置信息导入
  46 +datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr
  47 +
  48 +# 排版规则信息导入
  49 +datatools.schedulerule_datainputktr=/datatools/ktrs/scheduleRuleDataInput.ktr
  50 +
  51 +# 4、数据导出配置信息
  52 +# 导出数据文件目录配置(根据不同的环境需要修正)
  53 +datatools.fileoutput_dir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files
  54 +
  55 +##---------------------------- 导出数据ktr -----------------------------##
  56 +# 车辆信息导出ktr转换
  57 +datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr
  58 +# 人员信息导出ktr转换
  59 +datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr
  60 +# 时刻表导出元数据ktr转换
  61 +datatools.ttinfodetail_metaoutput=/datatools/ktrs/ttinfodetailDataOutputMetaData.ktr
  62 +# 时刻表导出数据ktr转换
  63 +datatools.ttinfodetail_output=/datatools/ktrs/ttinfodetailDataOutput.ktr
  64 +# 排版规则导出数据ktr转换
  65 +datatools.schedulerule_output=/datatools/ktrs/scheduleRuleDataOutput.ktr
  66 +
  67 +# 车辆配置信息导出ktr转换
  68 +datatools.carsconfig_dataoutputktr=/datatools/ktrs/carsConfigDataOutput.ktr
  69 +# 人员配置信息导出ktr转换
  70 +datatools.employeesconfig_dataoutputktr=/datatools/ktrs/employeesConfigDataOutput.ktr
  71 +
  72 +# 路牌信息导出
  73 +datatools.guideboards_dataoutputktr=/datatools/ktrs/guideboardDataOutput.ktr
  74 +
  75 +
  76 +# TODO:
  77 +
  78 +
  79 +
  80 +
  81 +
  82 +
  83 +
  84 +
src/test/resources/test.properties deleted 100644 → 0
src/test/resources/testdata/d1.xml 0 → 100644
  1 +<?xml version='1.0' encoding='UTF-8'?>
  2 +<dataset>
  3 + <!-- 用户数据 -->
  4 + <bsth_c_sys_user id="1" user_name="admin" name="系统管理员" create_date="2000-01-01" enabled="1" last_login_date="2000-01-01" />
  5 +
  6 +</dataset>
0 \ No newline at end of file 7 \ No newline at end of file