Commit d11b6caaf34cb50f7dfbbbd52e071a87e5240d94

Authored by 潘钊
2 parents 388978b8 087cb21d

update...

Showing 64 changed files with 1680 additions and 874 deletions
src/main/java/com/bsth/controller/oil/YlbController.java
@@ -229,6 +229,12 @@ public class YlbController extends BaseController<Ylb, Integer>{ @@ -229,6 +229,12 @@ public class YlbController extends BaseController<Ylb, Integer>{
229 return list; 229 return list;
230 } 230 }
231 231
  232 + @RequestMapping(value = "/checkDate",method = RequestMethod.GET)
  233 + public String checkDate(@RequestParam Map<String, Object> map){
  234 + String list=ylbService.checkDate(map);
  235 + return list;
  236 + }
  237 +
232 @RequestMapping(value = "/sumYlb",method = RequestMethod.GET) 238 @RequestMapping(value = "/sumYlb",method = RequestMethod.GET)
233 public Map<String, Object> sumYlb(@RequestParam Map<String, Object> map){ 239 public Map<String, Object> sumYlb(@RequestParam Map<String, Object> map){
234 Map<String, Object> list=ylbService.sumYlb(map); 240 Map<String, Object> list=ylbService.sumYlb(map);
src/main/java/com/bsth/controller/report/ReportController.java
@@ -209,6 +209,12 @@ public class ReportController { @@ -209,6 +209,12 @@ public class ReportController {
209 return service.historyMessageCount(line, date, code); 209 return service.historyMessageCount(line, date, code);
210 } 210 }
211 211
  212 + @RequestMapping(value = "/historyMessageList", method = RequestMethod.GET)
  213 + public List<Object[]> historyMessageList(@RequestParam String line, @RequestParam String date,
  214 + @RequestParam String code,@RequestParam String type) {
  215 + return service.historyMessageList(line, date, code, type);
  216 + }
  217 +
212 @RequestMapping(value = "/tbodyTime1", method = RequestMethod.GET) 218 @RequestMapping(value = "/tbodyTime1", method = RequestMethod.GET)
213 public Map<String, Object> tbodyTime1(@RequestParam String line,@RequestParam String ttinfo) { 219 public Map<String, Object> tbodyTime1(@RequestParam String line,@RequestParam String ttinfo) {
214 return service.tbodyTime1(line, ttinfo); 220 return service.tbodyTime1(line, ttinfo);
src/main/java/com/bsth/controller/schedule/core/TTInfoController.java
@@ -55,6 +55,23 @@ public class TTInfoController extends BController&lt;TTInfo, Long&gt; { @@ -55,6 +55,23 @@ public class TTInfoController extends BController&lt;TTInfo, Long&gt; {
55 return rtn; 55 return rtn;
56 } 56 }
57 57
  58 + @RequestMapping(value = "/versiondesc2/{lineid}/{status}")
  59 + public Map<String, Object> getLineVersionDesc2(
  60 + @PathVariable(value = "lineid") Integer lineid,
  61 + @PathVariable(value = "status") Integer status) {
  62 + Map<String, Object> rtn = new HashMap<>();
  63 + try {
  64 + rtn.put("status", ResponseCode.SUCCESS);
  65 + rtn.put("data", ttInfoService.getLineVersions(lineid, status));
  66 +
  67 + } catch (Exception exp) {
  68 + rtn.put("status", ResponseCode.ERROR);
  69 + rtn.put("msg", exp.getMessage());
  70 + }
  71 +
  72 + return rtn;
  73 + }
  74 +
58 @RequestMapping(value = "/validate_name", method = RequestMethod.GET) 75 @RequestMapping(value = "/validate_name", method = RequestMethod.GET)
59 public Map<String, Object> validate_name(@RequestParam Map<String, Object> param) { 76 public Map<String, Object> validate_name(@RequestParam Map<String, Object> param) {
60 Map<String, Object> rtn = new HashMap<>(); 77 Map<String, Object> rtn = new HashMap<>();
src/main/java/com/bsth/controller/schedule/core/TTInfoDetailController.java
@@ -32,30 +32,18 @@ public class TTInfoDetailController extends BController&lt;TTInfoDetail, Long&gt; { @@ -32,30 +32,18 @@ public class TTInfoDetailController extends BController&lt;TTInfoDetail, Long&gt; {
32 * @param sheetname sheet名字 32 * @param sheetname sheet名字
33 * @param lineid 线路id 33 * @param lineid 线路id
34 * @param linename 线路名称 34 * @param linename 线路名称
  35 + * @param lineversion 线路版本
35 * @return 36 * @return
36 */ 37 */
37 @RequestMapping(value = "/validate/sheet", method = RequestMethod.POST) 38 @RequestMapping(value = "/validate/sheet", method = RequestMethod.POST)
38 public Map<String, Object> validate_sheet( 39 public Map<String, Object> validate_sheet(
39 - String filename, String sheetname, Integer lineid, String linename,  
40 - Integer zdlytype, Integer zdlyversion) { 40 + String filename, String sheetname, Integer lineid, String linename, Integer lineversion) {
41 Map<String, Object> rtn = new HashMap<>(); 41 Map<String, Object> rtn = new HashMap<>();
42 try { 42 try {
43 - if (zdlytype == null) {  
44 - throw new Exception("请选择路由版本类型");  
45 - } else {  
46 - if (zdlytype == 1) {  
47 - ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename, null);  
48 - } else if (zdlytype == 2) {  
49 - if (zdlyversion == null || zdlyversion == -1) {  
50 - throw new Exception("请选择具体版本");  
51 - } else {  
52 - ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename, zdlyversion);  
53 - }  
54 - } else {  
55 - throw new Exception("未知路由版本类型");  
56 - } 43 + if (lineversion == null) {
  44 + throw new Exception("线路版本未知");
57 } 45 }
58 - 46 + ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename, lineversion);
59 rtn.put("status", ResponseCode.SUCCESS); 47 rtn.put("status", ResponseCode.SUCCESS);
60 } catch (Exception exp) { 48 } catch (Exception exp) {
61 rtn.put("status", ResponseCode.ERROR); 49 rtn.put("status", ResponseCode.ERROR);
src/main/java/com/bsth/entity/oil/Dlb.java
@@ -73,7 +73,7 @@ public class Dlb { @@ -73,7 +73,7 @@ public class Dlb {
73 private String fgsname; 73 private String fgsname;
74 74
75 75
76 - private String lp=""; 76 + private String lp;
77 77
78 public Integer getId() { 78 public Integer getId() {
79 return id; 79 return id;
src/main/java/com/bsth/entity/oil/Ylb.java
@@ -56,7 +56,7 @@ public class Ylb { @@ -56,7 +56,7 @@ public class Ylb {
56 //进场顺序(根据最先出场和最后进场来关联车辆的存油量) 56 //进场顺序(根据最先出场和最后进场来关联车辆的存油量)
57 private int jcsx; 57 private int jcsx;
58 58
59 - private String lp=""; 59 + private String lp;
60 @Transient 60 @Transient
61 private String bglyh; 61 private String bglyh;
62 62
src/main/java/com/bsth/repository/CarDeviceRepository.java
1 package com.bsth.repository; 1 package com.bsth.repository;
2 2
3 import com.bsth.entity.CarDevice; 3 import com.bsth.entity.CarDevice;
  4 +
  5 +import java.util.Date;
  6 +import java.util.List;
  7 +
  8 +import org.springframework.data.jpa.repository.Query;
4 import org.springframework.stereotype.Repository; 9 import org.springframework.stereotype.Repository;
5 10
6 /** 11 /**
@@ -8,4 +13,6 @@ import org.springframework.stereotype.Repository; @@ -8,4 +13,6 @@ import org.springframework.stereotype.Repository;
8 */ 13 */
9 @Repository 14 @Repository
10 public interface CarDeviceRepository extends BaseRepository<CarDevice, Long> { 15 public interface CarDeviceRepository extends BaseRepository<CarDevice, Long> {
  16 + @Query(value="select s from CarDevice s where s.oldDeviceNo=?1 and s.qyrq>=?2 ")
  17 + List<CarDevice> findCarDevice(String device,Date date );
11 } 18 }
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
@@ -58,6 +58,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -58,6 +58,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
58 + " lp_name,xl_name,cl_zbh",nativeQuery=true) 58 + " lp_name,xl_name,cl_zbh",nativeQuery=true)
59 List<Object[]> historyMessageCount(String line,String date,String code); 59 List<Object[]> historyMessageCount(String line,String date,String code);
60 60
  61 + @Query(value="SELECT r.xl_name,r.cl_zbh,d.sender,d.timestamp,d.txt_content "
  62 + + " FROM bsth_c_s_sp_info_real r RIGHT JOIN bsth_v_directive_60 d "
  63 + + " ON r.id = d.sch WHERE d.is_dispatch = 1 AND r.xl_bm like %?1% AND "
  64 + + " r.schedule_date_str = ?2 and r.cl_zbh =?3 ",nativeQuery=true)
  65 + List<Object[]> historyMessageList(String line,String date,String code);
  66 +
61 @Query(value = "select max(id) from ScheduleRealInfo") 67 @Query(value = "select max(id) from ScheduleRealInfo")
62 Long getMaxId(); 68 Long getMaxId();
63 69
src/main/java/com/bsth/repository/schedule/TTInfoRepository.java
@@ -11,7 +11,9 @@ import org.springframework.data.jpa.repository.EntityGraph; @@ -11,7 +11,9 @@ import org.springframework.data.jpa.repository.EntityGraph;
11 import org.springframework.data.jpa.repository.Query; 11 import org.springframework.data.jpa.repository.Query;
12 import org.springframework.stereotype.Repository; 12 import org.springframework.stereotype.Repository;
13 13
  14 +import javax.persistence.Tuple;
14 import java.util.List; 15 import java.util.List;
  16 +import java.util.Map;
15 17
16 /** 18 /**
17 * Created by xu on 16/5/12. 19 * Created by xu on 16/5/12.
@@ -31,4 +33,19 @@ public interface TTInfoRepository extends BaseRepository&lt;TTInfo, Long&gt; { @@ -31,4 +33,19 @@ public interface TTInfoRepository extends BaseRepository&lt;TTInfo, Long&gt; {
31 33
32 @Query("select t from TTInfo t where t.xl = ?1 and t.isCancel = false") 34 @Query("select t from TTInfo t where t.xl = ?1 and t.isCancel = false")
33 List<TTInfo> findInCanceledByXl(Line xl); 35 List<TTInfo> findInCanceledByXl(Line xl);
  36 +
  37 + @Query(value = "select new map(lv.name as name, lv.startDate as sd, " +
  38 + "lv.status as status, lv.versions as version) " +
  39 + "from LineVersions lv where lv.line.id = ?1 ")
  40 + List<Map<String, Object>> findLineVersionDescs(Integer lineId);
  41 +
  42 + @Query(value = "select new map(lv.name as name, lv.startDate as sd, " +
  43 + "lv.status as status, lv.versions as version) " +
  44 + "from LineVersions lv where lv.line.id = ?1 and lv.versions = ?2 ")
  45 + List<Map<String, Object>> findLineVersionDescs2(Integer lineId, Integer version);
  46 +
  47 + @Query(value = "select new map(lv.name as name, lv.versions as version) " +
  48 + "from LineVersions lv where lv.line.id = ?1 and lv.status = ?2 ")
  49 + List<Map<String, Object>> findLineVersionDescs3(Integer lineId, Integer status);
  50 +
34 } 51 }
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
@@ -868,7 +868,7 @@ public class FormsServiceImpl implements FormsService { @@ -868,7 +868,7 @@ public class FormsServiceImpl implements FormsService {
868 868
869 sin.setEmptMileage(String.valueOf(zksgl)); 869 sin.setEmptMileage(String.valueOf(zksgl));
870 sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc))); 870 sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc)));
871 - sin.setxL(BasicData.lineCode2NameMap.get(line)); 871 + sin.setXlmc(BasicData.lineCode2NameMap.get(line));
872 sin.setClzbh(clzbh); 872 sin.setClzbh(clzbh);
873 sin.setJsy(""); 873 sin.setJsy("");
874 sin.setjName(""); 874 sin.setjName("");
@@ -876,8 +876,9 @@ public class FormsServiceImpl implements FormsService { @@ -876,8 +876,9 @@ public class FormsServiceImpl implements FormsService {
876 sin.setHyl(""); 876 sin.setHyl("");
877 sin.setJzl(""); 877 sin.setJzl("");
878 sin.setUnyyyl(""); 878 sin.setUnyyyl("");
  879 + list_.add(sin);
879 } 880 }
880 - Collections.sort(list,new SingledataByXlbm()); 881 + Collections.sort(list_,new SingledataByXlbm());
881 } 882 }
882 return list_; 883 return list_;
883 } 884 }
@@ -1539,7 +1540,7 @@ public class FormsServiceImpl implements FormsService { @@ -1539,7 +1540,7 @@ public class FormsServiceImpl implements FormsService {
1539 1540
1540 sin.setEmptMileage(String.valueOf(zksgl)); 1541 sin.setEmptMileage(String.valueOf(zksgl));
1541 sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc))); 1542 sin.setJhjl(String.valueOf(Arith.add(jhgl,jhjcc)));
1542 - sin.setxL(BasicData.lineCode2NameMap.get(line)); 1543 + sin.setXlmc(BasicData.lineCode2NameMap.get(line));
1543 sin.setClzbh(clzbh); 1544 sin.setClzbh(clzbh);
1544 sin.setJsy(""); 1545 sin.setJsy("");
1545 sin.setjName(""); 1546 sin.setjName("");
@@ -1550,9 +1551,7 @@ public class FormsServiceImpl implements FormsService { @@ -1550,9 +1551,7 @@ public class FormsServiceImpl implements FormsService {
1550 } 1551 }
1551 Collections.sort(list,new SingledataByXlbm()); 1552 Collections.sort(list,new SingledataByXlbm());
1552 } 1553 }
1553 -  
1554 return list; 1554 return list;
1555 -  
1556 } 1555 }
1557 1556
1558 // 运营服务阶段报表 1557 // 运营服务阶段报表
src/main/java/com/bsth/service/oil/YlbService.java
@@ -19,6 +19,8 @@ public interface YlbService extends BaseService&lt;Ylb, Integer&gt;{ @@ -19,6 +19,8 @@ public interface YlbService extends BaseService&lt;Ylb, Integer&gt;{
19 19
20 Map<String, Object> sumYlb(Map<String, Object> map); 20 Map<String, Object> sumYlb(Map<String, Object> map);
21 String checkJsy(Map<String, Object> map); 21 String checkJsy(Map<String, Object> map);
  22 + String checkDate(Map<String, Object> map);
  23 +
22 List<Map<String, Object>> oilListMonth(Map<String, Object> map); 24 List<Map<String, Object>> oilListMonth(Map<String, Object> map);
23 List<Ylb> listYlb(Map<String, Object> map); 25 List<Ylb> listYlb(Map<String, Object> map);
24 StringBuffer checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int lx); 26 StringBuffer checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int lx);
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
@@ -1442,6 +1442,35 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -1442,6 +1442,35 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1442 } 1442 }
1443 return type; 1443 return type;
1444 } 1444 }
  1445 +
  1446 + @Override
  1447 + public String checkDate(Map<String, Object> map) {
  1448 + // TODO Auto-generated method stub
  1449 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  1450 + String rq=map.get("rq").toString();
  1451 + String gsbm=map.get("ssgsdm_like").toString();
  1452 + String type="1";
  1453 + if(gsbm.equals("26")){
  1454 + Date date=new Date();
  1455 + Calendar aCalendar = Calendar.getInstance();
  1456 + aCalendar.setTime(date);
  1457 + int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
  1458 + try {
  1459 + aCalendar.setTime(sdf.parse(rq));
  1460 + } catch (ParseException e) {
  1461 + // TODO Auto-generated catch block
  1462 + e.printStackTrace();
  1463 + }
  1464 + int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
  1465 + int days=day1-day2;
  1466 + if(days>3){
  1467 + type="2";
  1468 + }
  1469 + }
  1470 + return type;
  1471 + }
  1472 +
  1473 +
1445 1474
1446 @Override 1475 @Override
1447 public Map<String, Object> saveYlb(Ylb t) { 1476 public Map<String, Object> saveYlb(Ylb t) {
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -21,6 +21,7 @@ import com.bsth.data.schedule.edit_logs.loggers.FcxxwtLogger; @@ -21,6 +21,7 @@ import com.bsth.data.schedule.edit_logs.loggers.FcxxwtLogger;
21 import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto; 21 import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto;
22 import com.bsth.data.schedule.late_adjust.LateAdjustHandle; 22 import com.bsth.data.schedule.late_adjust.LateAdjustHandle;
23 import com.bsth.data.utils.CustomStringUtils; 23 import com.bsth.data.utils.CustomStringUtils;
  24 +import com.bsth.entity.CarDevice;
24 import com.bsth.entity.Cars; 25 import com.bsth.entity.Cars;
25 import com.bsth.entity.Line; 26 import com.bsth.entity.Line;
26 import com.bsth.entity.Personnel; 27 import com.bsth.entity.Personnel;
@@ -39,6 +40,7 @@ import com.bsth.entity.schedule.GuideboardInfo; @@ -39,6 +40,7 @@ import com.bsth.entity.schedule.GuideboardInfo;
39 import com.bsth.entity.schedule.SchedulePlanInfo; 40 import com.bsth.entity.schedule.SchedulePlanInfo;
40 import com.bsth.entity.sys.DutyEmployee; 41 import com.bsth.entity.sys.DutyEmployee;
41 import com.bsth.entity.sys.SysUser; 42 import com.bsth.entity.sys.SysUser;
  43 +import com.bsth.repository.CarDeviceRepository;
42 import com.bsth.repository.LineRepository; 44 import com.bsth.repository.LineRepository;
43 import com.bsth.repository.oil.DlbRepository; 45 import com.bsth.repository.oil.DlbRepository;
44 import com.bsth.repository.oil.YlbRepository; 46 import com.bsth.repository.oil.YlbRepository;
@@ -153,6 +155,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -153,6 +155,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
153 155
154 @Autowired 156 @Autowired
155 DirectiveService directiveService; 157 DirectiveService directiveService;
  158 +
  159 + @Autowired
  160 + CarDeviceRepository carDeviceRepository;
156 161
157 Logger logger = LoggerFactory.getLogger(this.getClass()); 162 Logger logger = LoggerFactory.getLogger(this.getClass());
158 163
@@ -1097,6 +1102,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1097,6 +1102,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1097 @Override 1102 @Override
1098 public List<Object[]> historyMessage(String line, String date, String code, String type) { 1103 public List<Object[]> historyMessage(String line, String date, String code, String type) {
1099 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 1104 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1105 +
1100 long d = 0; 1106 long d = 0;
1101 long t = 0; 1107 long t = 0;
1102 if (date.length() > 0) { 1108 if (date.length() > 0) {
@@ -1116,7 +1122,23 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1116,7 +1122,23 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1116 List<Object[]> list = scheduleRealInfoRepository.historyMessage(line, d, t, device); 1122 List<Object[]> list = scheduleRealInfoRepository.historyMessage(line, d, t, device);
1117 for (Object[] obj : list) { 1123 for (Object[] obj : list) {
1118 if (obj != null) { 1124 if (obj != null) {
1119 - obj[0] =BasicData.deviceId2NbbmMap.get(obj[0].toString()); 1125 +
  1126 + if(BasicData.deviceId2NbbmMap.get(obj[0].toString())==null){
  1127 + List<CarDevice> carDeviceList=new ArrayList<CarDevice>();
  1128 + try {
  1129 + carDeviceList = carDeviceRepository.findCarDevice(obj[0].toString(), sdf.parse(date + " 00:00:00"));
  1130 + } catch (ParseException e) {
  1131 + // TODO Auto-generated catch block
  1132 + e.printStackTrace();
  1133 + }
  1134 + if(carDeviceList.size()>0){
  1135 + obj[0] =carDeviceList.get(0).getClZbh();
  1136 + }else{
  1137 + obj[0] =BasicData.deviceId2NbbmMap.get(obj[0].toString());
  1138 + }
  1139 + }else{
  1140 + obj[0] =BasicData.deviceId2NbbmMap.get(obj[0].toString());
  1141 + }
1120 obj[3] = sdf.format(new Date(Long.parseLong(obj[3].toString()))); 1142 obj[3] = sdf.format(new Date(Long.parseLong(obj[3].toString())));
1121 obj[4] = BasicData.lineCode2NameMap.get(line); 1143 obj[4] = BasicData.lineCode2NameMap.get(line);
1122 } 1144 }
src/main/java/com/bsth/service/report/ReportService.java
@@ -22,6 +22,8 @@ public interface ReportService { @@ -22,6 +22,8 @@ public interface ReportService {
22 List<Map<String, String>> sreachZd(String line,int zdlx); 22 List<Map<String, String>> sreachZd(String line,int zdlx);
23 23
24 List<Object[]> historyMessageCount(String line, String date, String code); 24 List<Object[]> historyMessageCount(String line, String date, String code);
  25 + List<Object[]> historyMessageList(String line, String date, String code,String type);
  26 +
25 27
26 Map<String, Object> tbodyTime1(String line ,String ttinfo); 28 Map<String, Object> tbodyTime1(String line ,String ttinfo);
27 29
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
1 package com.bsth.service.report.impl; 1 package com.bsth.service.report.impl;
2 import com.bsth.data.BasicData; 2 import com.bsth.data.BasicData;
  3 +import com.bsth.entity.CarDevice;
3 import com.bsth.entity.Line; 4 import com.bsth.entity.Line;
4 import com.bsth.entity.Personnel; 5 import com.bsth.entity.Personnel;
5 import com.bsth.entity.StationRoute; 6 import com.bsth.entity.StationRoute;
@@ -278,6 +279,48 @@ public class ReportServiceImpl implements ReportService{ @@ -278,6 +279,48 @@ public class ReportServiceImpl implements ReportService{
278 return list; 279 return list;
279 } 280 }
280 @Override 281 @Override
  282 + public List<Object[]> historyMessageList(String line, String date, String code,String type) {
  283 + // TODO Auto-generated method stub
  284 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  285 +
  286 + List<Object[]> list = scheduleRealInfoRepository.historyMessageList(line, date, code);
  287 + for (Object[] obj : list) {
  288 + if (obj != null) {
  289 + obj[3] = sdf.format(new Date(Long.parseLong(obj[3].toString())));
  290 + }
  291 + }
  292 +
  293 + if (type != null && type.length() != 0 && type.equals("export_msg")) {
  294 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  295 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  296 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  297 + Map<String, Object> m = new HashMap<String, Object>();
  298 + ReportUtils ee = new ReportUtils();
  299 + List<Map<String, Object>> newList = new ArrayList<Map<String, Object>>();
  300 + for (int i = 0; i < list.size(); i++) {
  301 + Map<String, Object> map = new HashMap<String, Object>();
  302 + Object[] obj = list.get(i);
  303 + map.put("num", i + 1);
  304 + map.put("line", obj[0]);
  305 + map.put("clZbh", obj[1]);
  306 + map.put("sender", obj[2]);
  307 + map.put("date", obj[3]);
  308 + map.put("text", obj[4]);
  309 + newList.add(map);
  310 + }
  311 + try {
  312 + listI.add(newList.iterator());
  313 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  314 + ee.excelReplace(listI, new Object[]{m}, path + "mould/message.xls",
  315 + path + "export/调度消息分析" + sdfSimple.format(sdfMonth.parse(date)) + ".xls");
  316 + } catch (Exception e) {
  317 + // TODO: handle exception
  318 + e.printStackTrace();
  319 + }
  320 + }
  321 + return list;
  322 + }
  323 + @Override
281 public Map<String, Object> tbodyTime1(String line, String ttinfo) { 324 public Map<String, Object> tbodyTime1(String line, String ttinfo) {
282 DecimalFormat df = new DecimalFormat("#0.00"); 325 DecimalFormat df = new DecimalFormat("#0.00");
283 // TODO Auto-generated method stub 326 // TODO Auto-generated method stub
src/main/java/com/bsth/service/report/impl/SheetServiceImpl.java
@@ -149,6 +149,8 @@ public class SheetServiceImpl extends BaseServiceImpl&lt;Sheet, Integer&gt; implements @@ -149,6 +149,8 @@ public class SheetServiceImpl extends BaseServiceImpl&lt;Sheet, Integer&gt; implements
149 // String line =map.get("line").toString(); 149 // String line =map.get("line").toString();
150 // String date =map.get("date").toString(); 150 // String date =map.get("date").toString();
151 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm"); 151 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
  152 + SimpleDateFormat sdf_=new SimpleDateFormat("yyyy-MM-dd");
  153 +
152 String minfcsj="02:00"; 154 String minfcsj="02:00";
153 List<Line> lineList=lineRepository.findLineByCode(line); 155 List<Line> lineList=lineRepository.findLineByCode(line);
154 if(lineList.size()>0){ 156 if(lineList.size()>0){
@@ -169,111 +171,7 @@ public class SheetServiceImpl extends BaseServiceImpl&lt;Sheet, Integer&gt; implements @@ -169,111 +171,7 @@ public class SheetServiceImpl extends BaseServiceImpl&lt;Sheet, Integer&gt; implements
169 List<ScheduleRealInfo> listReal0=new ArrayList<ScheduleRealInfo>(); 171 List<ScheduleRealInfo> listReal0=new ArrayList<ScheduleRealInfo>();
170 172
171 List<ScheduleRealInfo> listReal1=new ArrayList<ScheduleRealInfo>(); 173 List<ScheduleRealInfo> listReal1=new ArrayList<ScheduleRealInfo>();
172 - //排除所有进出场班次  
173 -// List<ScheduleRealInfo> list=scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);  
174 - /* for (int i = 0; i < list.size(); i++) {  
175 - //排除所有烂班的班次  
176 - ScheduleRealInfo s=list.get(i);  
177 - Set<ChildTaskPlan> cts=s.getcTasks();  
178 - if(cts!=null && cts.size() > 0){  
179 -  
180 - }  
181 - ScheduleRealInfo r=checkBc(s);  
182 - String[] fcsj= r.getFcsj().split(":");  
183 - Long fcsjL=Long.parseLong(fcsj[0])*60+Long.parseLong(fcsj[1]);  
184 - Long fscjT=0L;  
185 - if(fcsjL<minSj){  
186 - Calendar calendar = new GregorianCalendar();  
187 - calendar.setTime(r.getScheduleDate());  
188 - calendar.add(calendar.DATE,1);  
189 - r.setScheduleDate(calendar.getTime());  
190 - try {  
191 - fscjT = sdf.parse(sdf.format(r.getScheduleDate())+" "+r.getFcsj()).getTime();  
192 - } catch (ParseException e) {  
193 - // TODO Auto-generated catch block  
194 - e.printStackTrace();  
195 - }  
196 -  
197 - }else{  
198 - try {  
199 - fscjT =sdf.parse(r.getScheduleDateStr()+" "+r.getFcsj()).getTime();  
200 - } catch (ParseException e) {  
201 - // TODO Auto-generated catch block  
202 - e.printStackTrace();  
203 - };  
204 - }  
205 -  
206 - Sheet sheet=new Sheet();  
207 - Long fcsjAcual=0L;  
208 - if (r.getFcsjActual()!=null) {  
209 - if(!r.getFcsjActual().equals("")){  
210 - try {  
211 - fcsjAcual =sdf.parse(r.getRealExecDate()+" "+r.getFcsjActual()).getTime();  
212 - } catch (ParseException e) {  
213 - // TODO Auto-generated catch block  
214 - e.printStackTrace();  
215 - }  
216 -  
217 -  
218 - Long sjc=fscjT-fcsjAcual;  
219 - //在快慢五分钟内直接添加  
220 - if(sjc>= 3*60*1000*-1 && sjc <=3*60*1000){  
221 -  
222 - sheet.setDate(r.getScheduleDateStr());  
223 - sheet.setRealDate(r.getRealExecDate());  
224 - sheet.setJhsjt(fscjT);  
225 - sheet.setJhsj(r.getFcsj());  
226 - sheet.setSjsjt(fcsjAcual);  
227 - sheet.setSjsj(r.getFcsjActual());  
228 - sheet.setGs(r.getGsBm());  
229 - sheet.setFgs(r.getFgsBm());  
230 - sheet.setLine(r.getXlBm());  
231 - sheet.setXlDir(r.getXlDir());  
232 - sheet.setZdname(r.getQdzName());  
233 - sheet.setCreateDate(new Date());  
234 - listAdd.add(sheet);  
235 - }else{  
236 - r.setFcsjActualTime(fcsjAcual);  
237 - r.setFcsjT(fscjT);  
238 - if(r.getXlDir().equals("0")){  
239 - listJhsj0.add(r);  
240 - listReal0.add(r);  
241 - }else{  
242 - listJhsj1.add(r);  
243 - listReal1.add(r);  
244 - }  
245 - }  
246 - }else{  
247 - sheet.setDate(r.getScheduleDateStr());  
248 - sheet.setRealDate(r.getRealExecDate());  
249 - sheet.setJhsjt(fscjT);  
250 - sheet.setJhsj(r.getFcsj());  
251 - sheet.setSjsjt(0L);  
252 - sheet.setSjsj("烂班");  
253 - sheet.setGs(r.getGsBm());  
254 - sheet.setFgs(r.getFgsBm());  
255 - sheet.setLine(r.getXlBm());  
256 - sheet.setXlDir(r.getXlDir());  
257 - sheet.setZdname(r.getQdzName());  
258 - sheet.setCreateDate(new Date());  
259 - listAdd.add(sheet);  
260 - }  
261 - }else{  
262 - sheet.setDate(r.getScheduleDateStr());  
263 - sheet.setRealDate(r.getRealExecDate());  
264 - sheet.setJhsjt(fscjT);  
265 - sheet.setJhsj(r.getFcsj());  
266 - sheet.setSjsjt(0L);  
267 - sheet.setSjsj("烂班");  
268 - sheet.setGs(r.getGsBm());  
269 - sheet.setFgs(r.getFgsBm());  
270 - sheet.setLine(r.getXlBm());  
271 - sheet.setXlDir(r.getXlDir());  
272 - sheet.setZdname(r.getQdzName());  
273 - sheet.setCreateDate(new Date());  
274 - listAdd.add(sheet);  
275 - }  
276 - }*/ 174 +
277 for (int i = 0; i < list.size(); i++) { 175 for (int i = 0; i < list.size(); i++) {
278 ScheduleRealInfo s=list.get(i); 176 ScheduleRealInfo s=list.get(i);
279 ScheduleRealInfo r=checkBc(s); 177 ScheduleRealInfo r=checkBc(s);
@@ -286,7 +184,7 @@ public class SheetServiceImpl extends BaseServiceImpl&lt;Sheet, Integer&gt; implements @@ -286,7 +184,7 @@ public class SheetServiceImpl extends BaseServiceImpl&lt;Sheet, Integer&gt; implements
286 calendar.add(calendar.DATE,1); 184 calendar.add(calendar.DATE,1);
287 r.setScheduleDate(calendar.getTime()); 185 r.setScheduleDate(calendar.getTime());
288 try { 186 try {
289 - fscjT = sdf.parse(sdf.format(r.getScheduleDate())+" "+r.getFcsj()).getTime(); 187 + fscjT = sdf.parse(sdf_.format(r.getScheduleDate())+" "+r.getFcsj()).getTime();
290 } catch (ParseException e) { 188 } catch (ParseException e) {
291 // TODO Auto-generated catch block 189 // TODO Auto-generated catch block
292 e.printStackTrace(); 190 e.printStackTrace();
src/main/java/com/bsth/service/schedule/TTInfoDetailService.java
@@ -34,14 +34,14 @@ public interface TTInfoDetailService extends BService&lt;TTInfoDetail, Long&gt; { @@ -34,14 +34,14 @@ public interface TTInfoDetailService extends BService&lt;TTInfoDetail, Long&gt; {
34 * @param filename excel文件全路径名 34 * @param filename excel文件全路径名
35 * @param sheetname sheet名字 35 * @param sheetname sheet名字
36 * @param lineid 线路id 36 * @param lineid 线路id
37 - * @param zdlyversion 站点路由版本 37 + * @param lineversion 线路版本
38 */ 38 */
39 void validateExcelSheet( 39 void validateExcelSheet(
40 String filename, 40 String filename,
41 String sheetname, 41 String sheetname,
42 Integer lineid, 42 Integer lineid,
43 String linename, 43 String linename,
44 - Integer zdlyversion) throws ScheduleException; 44 + Integer lineversion) throws ScheduleException;
45 45
46 /** 46 /**
47 * 验证关联的线路标准信息(以后放到规则引擎里去做)。 47 * 验证关联的线路标准信息(以后放到规则引擎里去做)。
src/main/java/com/bsth/service/schedule/TTInfoService.java
@@ -21,4 +21,6 @@ public interface TTInfoService extends BService&lt;TTInfo, Long&gt; { @@ -21,4 +21,6 @@ public interface TTInfoService extends BService&lt;TTInfo, Long&gt; {
21 21
22 String getLineVersionDesc(Integer lineId, Integer version); 22 String getLineVersionDesc(Integer lineId, Integer version);
23 23
  24 + List<Map<String, Object>> getLineVersions(Integer lineId, Integer status);
  25 +
24 } 26 }
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailDataToolsImpl.java
@@ -72,6 +72,10 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail @@ -72,6 +72,10 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail
72 try { 72 try {
73 LOGGER.info("//---------------- 导入时刻表明细 start... ----------------//"); 73 LOGGER.info("//---------------- 导入时刻表明细 start... ----------------//");
74 74
  75 + if (params.get("lineversion") == null) {
  76 + throw new Exception("线路版本未知");
  77 + }
  78 +
75 String filename = file.getAbsolutePath(); // xls xlsx 文件名 79 String filename = file.getAbsolutePath(); // xls xlsx 文件名
76 String sheetname = String.valueOf(params.get("sheetname")); // sheet名字 80 String sheetname = String.valueOf(params.get("sheetname")); // sheet名字
77 Long ttid = Long.valueOf(String.valueOf(params.get("ttid"))); // 时刻表id 81 Long ttid = Long.valueOf(String.valueOf(params.get("ttid"))); // 时刻表id
@@ -79,7 +83,7 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail @@ -79,7 +83,7 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail
79 Integer lineid = Integer.valueOf(String.valueOf(params.get("lineinfo"))); // 线路标准id 83 Integer lineid = Integer.valueOf(String.valueOf(params.get("lineinfo"))); // 线路标准id
80 String xlname = String.valueOf(params.get("xlname")); // 线路名字 84 String xlname = String.valueOf(params.get("xlname")); // 线路名字
81 String ttname = String.valueOf(params.get("ttname")); // 时刻表名字 85 String ttname = String.valueOf(params.get("ttname")); // 时刻表名字
82 - Integer zdlyversion = params.get("zdlyversion") == null ? null : Integer.valueOf(params.get("zdlyversion").toString()); 86 + Integer lineversion = Integer.valueOf(params.get("lineversion").toString());
83 87
84 LOGGER.info("参数1, xls文件名={},sheet名字={}", filename, sheetname); 88 LOGGER.info("参数1, xls文件名={},sheet名字={}", filename, sheetname);
85 LOGGER.info("参数2, 线路id={},线路名字={}", xlid, xlname); 89 LOGGER.info("参数2, 线路id={},线路名字={}", xlid, xlname);
@@ -149,30 +153,27 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail @@ -149,30 +153,27 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail
149 153
150 // 创建ktr转换所需参数 154 // 创建ktr转换所需参数
151 Map<String, Object> ktrParms = new HashMap<>(); 155 Map<String, Object> ktrParms = new HashMap<>();
152 - File ktrFile = new File(this.getClass().getResource( 156 + // 元数据ktr
  157 + File mktrFile = new File(this.getClass().getResource(
153 dataToolsProperties.getTtinfodetailMetadatainputktr()).toURI()); 158 dataToolsProperties.getTtinfodetailMetadatainputktr()).toURI());
154 -// File ktrFile2 = new File(this.getClass().getResource(  
155 -// dataToolsProperties.getTtinfodetailDatainputktr()).toURI());  
156 - File ktrFile2 = new File(this.getClass().getResource(  
157 - dataToolsProperties.getTtinfodetailDatainputktr2()).toURI());  
158 - File ktrFile2_ls = new File(this.getClass().getResource(  
159 - dataToolsProperties.getTtinfodetailDatainputktr2ls()).toURI()); 159 + // 实际数据ktr
  160 + File ktrFile2_version = new File(this.getClass().getResource(
  161 + dataToolsProperties.getTtinfodetailDatainputktr2version()).toURI());
160 162
161 // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 163 // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径
162 - ktrParms.put("transpath", ktrFile.getAbsolutePath()); 164 + ktrParms.put("transpath", mktrFile.getAbsolutePath());
163 ktrParms.put("filepath", fileCal.getAbsolutePath()); 165 ktrParms.put("filepath", fileCal.getAbsolutePath());
164 ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); 166 ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir());
165 167
166 // 附加参数 168 // 附加参数
167 - ktrParms.put("injectktrfile", zdlyversion == null || zdlyversion == -1 ?  
168 - ktrFile2.getAbsolutePath() : ktrFile2_ls.getAbsolutePath()); // 注入元数据的ktr文件 169 + ktrParms.put("injectktrfile", ktrFile2_version.getAbsolutePath()); // 注入元数据的ktr文件
169 ktrParms.put("sheetname", sheetname); // sheet工作区的名字 170 ktrParms.put("sheetname", sheetname); // sheet工作区的名字
170 ktrParms.put("lineinfoid", lineid); // 线路标准id 171 ktrParms.put("lineinfoid", lineid); // 线路标准id
171 ktrParms.put("xlname", xlname); // 线路名称 172 ktrParms.put("xlname", xlname); // 线路名称
172 ktrParms.put("xlid", xlid); // 线路id 173 ktrParms.put("xlid", xlid); // 线路id
173 ktrParms.put("ttinfoname", ttname); // 时刻表名称 174 ktrParms.put("ttinfoname", ttname); // 时刻表名称
174 ktrParms.put("ttid", ttid.intValue()); // 时刻表id 175 ktrParms.put("ttid", ttid.intValue()); // 时刻表id
175 - ktrParms.put("zdlyversion", zdlyversion); // 站点路由版本 176 + ktrParms.put("lineversion", lineversion); // 站点路由版本
176 ktrParms.put("excelfieldnames", StringUtils.join(columnames.toArray(), ",")); // 时刻表excel输入字段名,以逗号连接 177 ktrParms.put("excelfieldnames", StringUtils.join(columnames.toArray(), ",")); // 时刻表excel输入字段名,以逗号连接
177 columnames.remove(0); 178 columnames.remove(0);
178 ktrParms.put("normalizefieldnames", StringUtils.join(columnames.toArray(), ",")); // 数据范式化字段名,以逗号连接 179 ktrParms.put("normalizefieldnames", StringUtils.join(columnames.toArray(), ",")); // 数据范式化字段名,以逗号连接
src/main/java/com/bsth/service/schedule/impl/PeopleCarPlanServiceImpl.java
@@ -1485,7 +1485,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1485,7 +1485,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1485 1485
1486 try { 1486 try {
1487 String sql = "select a.schedule_date_str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name," 1487 String sql = "select a.schedule_date_str, a.real_exec_date, a.xl_name, a.fcsj, a.fcsj_actual, a.zdsj, a.zdsj_actual, a.qdz_name, a.zdz_name, a.xl_dir, a.status, a.gs_name, a.fgs_name,"
1488 - + " a.cc_service, b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line" 1488 + + " a.cc_service, a.remarks, a.adjust_exps, b.start_opt from bsth_c_s_sp_info_real a left join (select line, start_opt from bsth_c_line_config order by id desc) b on a.xl_bm = b.line"
1489 + " where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'" 1489 + " where schedule_date_str >= '"+startDate+"' and schedule_date_str <= '"+endDate+"'"
1490 + " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks' and bc_type != 'region'"; 1490 + " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks' and bc_type != 'region'";
1491 if(line.length() != 0) 1491 if(line.length() != 0)
@@ -1512,6 +1512,8 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1512,6 +1512,8 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1512 schedule.setGsName(rs.getString("gs_name")); 1512 schedule.setGsName(rs.getString("gs_name"));
1513 schedule.setFgsName(rs.getString("fgs_name")); 1513 schedule.setFgsName(rs.getString("fgs_name"));
1514 schedule.setCcService(rs.getBoolean("cc_service")); 1514 schedule.setCcService(rs.getBoolean("cc_service"));
  1515 + schedule.setRemarks(rs.getString("remarks")!=null?rs.getString("remarks"):"");
  1516 + schedule.setAdjustExps(rs.getString("adjust_exps")!=null?rs.getString("adjust_exps"):"");
1515 1517
1516 int startOpt = 0; 1518 int startOpt = 0;
1517 if(rs.getString("start_opt") != null && rs.getString("start_opt").trim().length() != 0){ 1519 if(rs.getString("start_opt") != null && rs.getString("start_opt").trim().length() != 0){
@@ -1569,6 +1571,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1569,6 +1571,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1569 subCompanyName = s.getFgsName(); 1571 subCompanyName = s.getFgsName();
1570 } 1572 }
1571 1573
  1574 + List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
1572 for(String xlName : keyMap.keySet()){ 1575 for(String xlName : keyMap.keySet()){
1573 List<Map<String, Object>> tempList = new ArrayList<Map<String,Object>>(); 1576 List<Map<String, Object>> tempList = new ArrayList<Map<String,Object>>();
1574 Map<String, Object> tempMap = new HashMap<String, Object>(); 1577 Map<String, Object> tempMap = new HashMap<String, Object>();
@@ -1630,10 +1633,38 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1630,10 +1633,38 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1630 temp.put("sjfcLast0", s4.getFcsjActual()); 1633 temp.put("sjfcLast0", s4.getFcsjActual());
1631 temp.put("delayLast0", delayLast0>0?"+"+delayLast0:delayLast0); 1634 temp.put("delayLast0", delayLast0>0?"+"+delayLast0:delayLast0);
1632 jhbc += 2; 1635 jhbc += 2;
1633 - if(delayFirst0 <= 1l && delayFirst0 >= -3l) 1636 + if(delayFirst0 <= 1l && delayFirst0 >= -3l){
1634 sjbc++; 1637 sjbc++;
1635 - if(delayLast0 <= 1l && delayLast0 >= -3l) 1638 + } else {
  1639 + Map<String, Object> m = new HashMap<String, Object>();
  1640 + m.put("date", date.substring(5));
  1641 + m.put("line", xlName);
  1642 + m.put("firstOrLast", "上行首发");
  1643 + m.put("qdz", s1.getQdzName());
  1644 + m.put("jhfc", s1.getFcsj());
  1645 + m.put("sjfc", s2.getFcsjActual());
  1646 + m.put("delay", delayFirst0>0?"+"+delayFirst0:delayFirst0);
  1647 + m.put("remarks1", s1.getRemarks());
  1648 + m.put("remarks2", s2.getRemarks());
  1649 + m.put("remarks", s1.getRemarks() + s2.getRemarks());
  1650 + mapList.add(m);
  1651 + }
  1652 + if(delayLast0 <= 1l && delayLast0 >= -3l){
1636 sjbc++; 1653 sjbc++;
  1654 + } else {
  1655 + Map<String, Object> m = new HashMap<String, Object>();
  1656 + m.put("date", date.substring(5));
  1657 + m.put("line", xlName);
  1658 + m.put("firstOrLast", "上行末发");
  1659 + m.put("qdz", s3.getQdzName());
  1660 + m.put("jhfc", s3.getFcsj());
  1661 + m.put("sjfc", s4.getFcsjActual());
  1662 + m.put("delay", delayLast0>0?"+"+delayLast0:delayLast0);
  1663 + m.put("remarks1", s3.getRemarks());
  1664 + m.put("remarks2", s4.getRemarks());
  1665 + m.put("remarks", s3.getRemarks() + s4.getRemarks());
  1666 + mapList.add(m);
  1667 + }
1637 } else { 1668 } else {
1638 temp.put("qdzFirst0", "--"); 1669 temp.put("qdzFirst0", "--");
1639 temp.put("jhfcFirst0", "/"); 1670 temp.put("jhfcFirst0", "/");
@@ -1662,10 +1693,40 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1662,10 +1693,40 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1662 temp.put("sjfcLast1", s4.getFcsjActual()); 1693 temp.put("sjfcLast1", s4.getFcsjActual());
1663 temp.put("delayLast1", delayLast1>0?"+"+delayLast1:delayLast1); 1694 temp.put("delayLast1", delayLast1>0?"+"+delayLast1:delayLast1);
1664 jhbc += 2; 1695 jhbc += 2;
1665 - if(delayFirst1 <= 1l && delayFirst1 >= -3l) 1696 + if(delayFirst1 <= 1l && delayFirst1 >= -2l){
1666 sjbc++; 1697 sjbc++;
1667 - if(delayLast1 <= 1l && delayLast1 >= -3l) 1698 + } else {
  1699 + Map<String, Object> m = new HashMap<String, Object>();
  1700 + m.put("date", date.substring(5));
  1701 + m.put("line", xlName);
  1702 + m.put("firstOrLast", "下行首发");
  1703 + m.put("qdz", s1.getQdzName());
  1704 + m.put("jhfc", s1.getFcsj());
  1705 + m.put("sjfc", s2.getFcsjActual());
  1706 + m.put("delay", delayFirst1>0?"+"+delayFirst1:delayFirst1);
  1707 + m.put("remarks1", s1.getRemarks());
  1708 + m.put("remarks2", s2.getRemarks());
  1709 + m.put("remarks", s1.getRemarks() + s2.getAdjustExps());
  1710 + mapList.add(m);
  1711 + }
  1712 +
  1713 + if(delayLast1 <= 1l && delayLast1 >= -2l){
1668 sjbc++; 1714 sjbc++;
  1715 + } else {
  1716 + Map<String, Object> m = new HashMap<String, Object>();
  1717 + m.put("date", date.substring(5));
  1718 + m.put("line", xlName);
  1719 + m.put("firstOrLast", "下行末发");
  1720 + m.put("qdz", s3.getQdzName());
  1721 + m.put("jhfc", s3.getFcsj());
  1722 + m.put("sjfc", s4.getFcsjActual());
  1723 + m.put("delay", delayLast1>0?"+"+delayLast1:delayLast1);
  1724 + m.put("remarks1", s3.getRemarks());
  1725 + m.put("remarks2", s4.getRemarks());
  1726 + m.put("remarks", s3.getRemarks() + s4.getRemarks());
  1727 + mapList.add(m);
  1728 + }
  1729 +
1669 } else { 1730 } else {
1670 temp.put("qdzFirst1", "--"); 1731 temp.put("qdzFirst1", "--");
1671 temp.put("jhfcFirst1", "/"); 1732 temp.put("jhfcFirst1", "/");
@@ -1692,14 +1753,20 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -1692,14 +1753,20 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
1692 Map<String, Object> tempMap = new HashMap<String, Object>(); 1753 Map<String, Object> tempMap = new HashMap<String, Object>();
1693 if(resList.size() > 0){ 1754 if(resList.size() > 0){
1694 tempMap.put("date", "合计汇总"); 1755 tempMap.put("date", "合计汇总");
1695 - int jhbc = 0, sjbc = 0; 1756 + int jhbc = 0, sjbc = 0, i = 0;
1696 for(Map<String, Object> m : resList){ 1757 for(Map<String, Object> m : resList){
1697 jhbc += Integer.valueOf(m.get("jhbc").toString()); 1758 jhbc += Integer.valueOf(m.get("jhbc").toString());
1698 sjbc += Integer.valueOf(m.get("sjbc").toString()); 1759 sjbc += Integer.valueOf(m.get("sjbc").toString());
1699 } 1760 }
1700 tempMap.put("jhbc", jhbc); 1761 tempMap.put("jhbc", jhbc);
1701 tempMap.put("sjbc", sjbc); 1762 tempMap.put("sjbc", sjbc);
1702 - tempMap.put("zdl", nf.format((float) sjbc / jhbc *100) + "%"); 1763 + tempMap.put("zdl", nf.format((float) sjbc / jhbc * 100) + "%");
  1764 + for(Map<String, Object> m : mapList){
  1765 + m.put("no", ++i);
  1766 + m.put("company", companyName);
  1767 + m.put("subCompany", subCompanyName);
  1768 + }
  1769 + tempMap.put("map", mapList);
1703 if(!type.equals("export")) 1770 if(!type.equals("export"))
1704 resList.add(tempMap); 1771 resList.add(tempMap);
1705 } 1772 }
src/main/java/com/bsth/service/schedule/impl/TTInfoDetailServiceImpl.java
@@ -146,7 +146,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -146,7 +146,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
146 } 146 }
147 147
148 @Override 148 @Override
149 - public void validateExcelSheet(String filename, String sheetname, Integer lineid, String linename, Integer zdlyversion) throws ScheduleException { 149 + public void validateExcelSheet(String filename, String sheetname, Integer lineid, String linename, Integer lineversion) throws ScheduleException {
150 try { 150 try {
151 File file = new File(filename); 151 File file = new File(filename);
152 Workbook workbook; 152 Workbook workbook;
@@ -178,7 +178,10 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -178,7 +178,10 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
178 } else { 178 } else {
179 // 正则表达式去除右侧数字 179 // 正则表达式去除右侧数字
180 // cell_con = cell_con.replaceAll("[\\d+]", ""); 180 // cell_con = cell_con.replaceAll("[\\d+]", "");
181 - cell_con = cell_con.replaceAll("(\\d+)$", ""); 181 +// cell_con = cell_con.replaceAll("(\\d+)$", "");
  182 +
  183 + // 如果站名中有类似->{数字},使用正则表达式过滤掉
  184 + cell_con = cell_con.replaceAll("(->\\d+)", "");
182 185
183 if (i == 0) { // 第一列必须是路牌2个字 186 if (i == 0) { // 第一列必须是路牌2个字
184 if (!"路牌".equals(cell_con.trim())) { 187 if (!"路牌".equals(cell_con.trim())) {
@@ -189,35 +192,20 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -189,35 +192,20 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
189 (!"进场".equals(cell_con.trim()))) { 192 (!"进场".equals(cell_con.trim()))) {
190 Map<String, Object> p1 = new HashMap<>(); 193 Map<String, Object> p1 = new HashMap<>();
191 p1.put("line.id_eq", lineid); 194 p1.put("line.id_eq", lineid);
192 - p1.put("stationName_like", cell_con.trim() + "%"); // 使用模糊匹配  
193 - p1.put("stationMark_eq", "B"); 195 + p1.put("stationName_eq", cell_con.trim());
  196 + p1.put("stationMark_eq", "B"); // 起点站
194 p1.put("destroy_eq", 0); // 未撤销 197 p1.put("destroy_eq", 0); // 未撤销
195 -  
196 -  
197 - // TODO:这里要修改(起点站有启用撤销的标志的)  
198 -  
199 - if (zdlyversion == null) {  
200 - List<StationRoute> stationRouteList = (List<StationRoute>) stationRouteService.list(p1);  
201 - if (CollectionUtils.isEmpty(stationRouteList)) {  
202 - throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中不是起点站", i + 1, cell_con.trim(), linename));  
203 - } else if (stationRouteList.size() > 1) {  
204 - throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中上下行都是起点站", i + 1, cell_con.trim(), linename));  
205 - } else if (StringUtils.isEmpty(stationRouteList.get(0).getStationCode())) {  
206 - throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中没有站点编码", i + 1, cell_con.trim(), linename));  
207 - }  
208 - } else {  
209 - p1.put("versions_eq", zdlyversion);  
210 - List<LsStationRoute> lsStationRoutes = (List<LsStationRoute>) stationRouteService.list_ls(p1);  
211 - if (CollectionUtils.isEmpty(lsStationRoutes)) {  
212 - throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中不是起点站", i + 1, cell_con.trim(), linename));  
213 - } else if (lsStationRoutes.size() > 1) {  
214 - throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中上下行都是起点站", i + 1, cell_con.trim(), linename));  
215 - } else if (StringUtils.isEmpty(lsStationRoutes.get(0).getStationCode())) {  
216 - throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中没有站点编码", i + 1, cell_con.trim(), linename));  
217 - } 198 + p1.put("versions_eq", lineversion); // 带线路版本
  199 +
  200 + List<LsStationRoute> lsStationRoutes = (List<LsStationRoute>) stationRouteService.list_ls(p1);
  201 + if (CollectionUtils.isEmpty(lsStationRoutes)) {
  202 + throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中不是起点站", i + 1, cell_con.trim(), linename));
  203 + } else if (lsStationRoutes.size() > 1) {
  204 + throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中上下行都是起点站", i + 1, cell_con.trim(), linename));
  205 + } else if (StringUtils.isEmpty(lsStationRoutes.get(0).getStationCode())) {
  206 + throw new Exception(String.format("第1行,第%d列数据%s在%s站点路由中没有站点编码", i + 1, cell_con.trim(), linename));
218 } 207 }
219 208
220 -  
221 } 209 }
222 210
223 } 211 }
src/main/java/com/bsth/service/schedule/impl/TTInfoServiceImpl.java
1 package com.bsth.service.schedule.impl; 1 package com.bsth.service.schedule.impl;
2 2
3 -import com.bsth.entity.LineVersions;  
4 import com.bsth.entity.schedule.TTInfo; 3 import com.bsth.entity.schedule.TTInfo;
5 import com.bsth.entity.schedule.TTInfoBackup; 4 import com.bsth.entity.schedule.TTInfoBackup;
6 import com.bsth.entity.schedule.TTInfoDetail; 5 import com.bsth.entity.schedule.TTInfoDetail;
7 import com.bsth.repository.schedule.TTInfoBackupRepository; 6 import com.bsth.repository.schedule.TTInfoBackupRepository;
8 import com.bsth.repository.schedule.TTInfoDetailRepository; 7 import com.bsth.repository.schedule.TTInfoDetailRepository;
9 import com.bsth.repository.schedule.TTInfoRepository; 8 import com.bsth.repository.schedule.TTInfoRepository;
10 -import com.bsth.service.LineVersionsService;  
11 import com.bsth.service.schedule.TTInfoService; 9 import com.bsth.service.schedule.TTInfoService;
12 import com.bsth.service.schedule.exception.ScheduleException; 10 import com.bsth.service.schedule.exception.ScheduleException;
13 import com.bsth.service.schedule.utils.TimeTableProto; 11 import com.bsth.service.schedule.utils.TimeTableProto;
@@ -24,6 +22,7 @@ import org.springframework.util.CollectionUtils; @@ -24,6 +22,7 @@ import org.springframework.util.CollectionUtils;
24 22
25 import java.io.PrintWriter; 23 import java.io.PrintWriter;
26 import java.io.StringWriter; 24 import java.io.StringWriter;
  25 +import java.sql.Timestamp;
27 import java.util.*; 26 import java.util.*;
28 27
29 /** 28 /**
@@ -40,8 +39,6 @@ public class TTInfoServiceImpl extends BServiceImpl&lt;TTInfo, Long&gt; implements TTI @@ -40,8 +39,6 @@ public class TTInfoServiceImpl extends BServiceImpl&lt;TTInfo, Long&gt; implements TTI
40 private TTInfoDetailRepository ttInfoDetailRepository; 39 private TTInfoDetailRepository ttInfoDetailRepository;
41 @Autowired 40 @Autowired
42 private TTInfoBackupRepository ttInfoBackupRepository; 41 private TTInfoBackupRepository ttInfoBackupRepository;
43 - @Autowired  
44 - private LineVersionsService lineVersionsService;  
45 42
46 @Override 43 @Override
47 public void validate_name(TTInfo ttInfo) throws ScheduleException { 44 public void validate_name(TTInfo ttInfo) throws ScheduleException {
@@ -140,15 +137,18 @@ public class TTInfoServiceImpl extends BServiceImpl&lt;TTInfo, Long&gt; implements TTI @@ -140,15 +137,18 @@ public class TTInfoServiceImpl extends BServiceImpl&lt;TTInfo, Long&gt; implements TTI
140 137
141 @Override 138 @Override
142 public List<Map<String, Object>> getLineStationRouteVersions(Integer lineId) { 139 public List<Map<String, Object>> getLineStationRouteVersions(Integer lineId) {
143 - // 获取线路版本  
144 - List<LineVersions> lineVersionsList = lineVersionsService.findByLineCode(lineId); 140 + // 获取线路版本数据
  141 + List<Map<String, Object>> lineVersionDescs = ttInfoRepository.findLineVersionDescs(lineId);
145 // 按照version版本降序排序 142 // 按照version版本降序排序
146 - Collections.sort(lineVersionsList, new Comparator<LineVersions>() { 143 + Collections.sort(lineVersionDescs, new Comparator<Map<String, Object>>() {
147 @Override 144 @Override
148 - public int compare(LineVersions o1, LineVersions o2) {  
149 - if (o1.getVersions() > o2.getVersions()) { 145 + public int compare(Map<String, Object> o1, Map<String, Object> o2) {
  146 + int o1_v = Integer.parseInt(o1.get("version").toString());
  147 + int o2_v = Integer.parseInt(o2.get("version").toString());
  148 +
  149 + if (o1_v > o2_v) {
150 return -1; 150 return -1;
151 - } else if (o1.getVersions() < o2.getVersions()) { 151 + } else if (o1_v < o2_v) {
152 return 1; 152 return 1;
153 } else { 153 } else {
154 return 0; 154 return 0;
@@ -158,14 +158,19 @@ public class TTInfoServiceImpl extends BServiceImpl&lt;TTInfo, Long&gt; implements TTI @@ -158,14 +158,19 @@ public class TTInfoServiceImpl extends BServiceImpl&lt;TTInfo, Long&gt; implements TTI
158 158
159 // 取最开始的2条记录 159 // 取最开始的2条记录
160 List<Map<String, Object>> mapList = new ArrayList<>(); 160 List<Map<String, Object>> mapList = new ArrayList<>();
161 - for (LineVersions lv: lineVersionsList) {  
162 - String vname = lv.getName();  
163 - String rq = lv.getStartDate() == null ? "未知启用日期" : new DateTime(lv.getStartDate()).toString("YYYY年MM月dd日");  
164 - String sdesc = lv.getStatus() == 0 ? "历史" : (lv.getStatus() == 1 ? "当前" : "待更新"); 161 + for (Map<String, Object> lv: lineVersionDescs) {
  162 + String t_name = (String) lv.get("name");
  163 + Timestamp t_sd = (Timestamp) lv.get("sd");
  164 + int status = Integer.parseInt(lv.get("status").toString());
  165 + int version = Integer.parseInt(lv.get("version").toString());
  166 +
  167 + String vname = t_name;
  168 + String rq = t_sd == null ? "未知启用日期" : new DateTime(t_sd).toString("YYYY年MM月dd日");
  169 + String sdesc = status == 0 ? "历史" : (status == 1 ? "当前" : "待更新");
165 170
166 Map<String, Object> value = new HashMap<>(); 171 Map<String, Object> value = new HashMap<>();
167 value.put("desc", vname + "-" + rq + "-" + sdesc); 172 value.put("desc", vname + "-" + rq + "-" + sdesc);
168 - value.put("version", lv.getVersions()); 173 + value.put("version", version);
169 174
170 mapList.add(value); 175 mapList.add(value);
171 176
@@ -180,28 +185,34 @@ public class TTInfoServiceImpl extends BServiceImpl&lt;TTInfo, Long&gt; implements TTI @@ -180,28 +185,34 @@ public class TTInfoServiceImpl extends BServiceImpl&lt;TTInfo, Long&gt; implements TTI
180 @Override 185 @Override
181 public String getLineVersionDesc(Integer lineId, Integer version) { 186 public String getLineVersionDesc(Integer lineId, Integer version) {
182 // 查找指定版本,并判定 187 // 查找指定版本,并判定
183 - Map<String, Object> param = new HashMap<>();  
184 - param.put("line_eq", lineId);  
185 - param.put("versions_eq", version);  
186 - List<LineVersions> lineVersionsList = (List<LineVersions>) lineVersionsService.list(param); 188 + List<Map<String, Object>> lineVersionDescs = ttInfoRepository.findLineVersionDescs2(lineId, version);
187 189
188 - LineVersions lv;  
189 - if (CollectionUtils.isEmpty(lineVersionsList)) { 190 + Map<String, Object> lv;
  191 + if (CollectionUtils.isEmpty(lineVersionDescs)) {
190 return "未知版本"; 192 return "未知版本";
191 - } else if (lineVersionsList.size() > 1) { 193 + } else if (lineVersionDescs.size() > 1) {
192 return "重复版本"; 194 return "重复版本";
193 } else { 195 } else {
194 - lv = lineVersionsList.get(0); 196 + lv = lineVersionDescs.get(0);
195 } 197 }
196 198
197 - String vname = lv.getName();  
198 - String rq = lv.getStartDate() == null ? "未知启用日期" : new DateTime(lv.getStartDate()).toString("YYYY年MM月dd日");  
199 - String sdesc = lv.getStatus() == 0 ? "历史" : (lv.getStatus() == 1 ? "当前" : "待更新"); 199 + String t_name = (String) lv.get("name");
  200 + Timestamp t_sd = (Timestamp) lv.get("sd");
  201 + int status = Integer.parseInt(lv.get("status").toString());
  202 +
  203 + String vname = t_name;
  204 + String rq = t_sd == null ? "未知启用日期" : new DateTime(t_sd).toString("YYYY年MM月dd日");
  205 + String sdesc = status == 0 ? "历史" : (status == 1 ? "当前" : "待更新");
200 206
201 return String.format("%s-%s-%s", vname, rq, sdesc); 207 return String.format("%s-%s-%s", vname, rq, sdesc);
202 } 208 }
203 209
204 @Override 210 @Override
  211 + public List<Map<String, Object>> getLineVersions(Integer lineId, Integer status) {
  212 + return ttInfoRepository.findLineVersionDescs3(lineId, status);
  213 + }
  214 +
  215 + @Override
205 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.REPEATABLE_READ) 216 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.REPEATABLE_READ)
206 public void backUp(Long ttInfoId) throws ScheduleException { 217 public void backUp(Long ttInfoId) throws ScheduleException {
207 LOG.info(">>>>>>开始备份时刻表<<<<<<"); 218 LOG.info(">>>>>>开始备份时刻表<<<<<<");
src/main/java/com/bsth/service/schedule/utils/DataToolsProperties.java
@@ -75,12 +75,12 @@ public class DataToolsProperties { @@ -75,12 +75,12 @@ public class DataToolsProperties {
75 /** 时刻表明细信息导入 */ 75 /** 时刻表明细信息导入 */
76 @NotNull 76 @NotNull
77 private String ttinfodetailDatainputktr; 77 private String ttinfodetailDatainputktr;
78 - /** 时刻表明细信息导入 */ 78 + /** 时刻表明细信息导入2 */
79 @NotNull 79 @NotNull
80 private String ttinfodetailDatainputktr2; 80 private String ttinfodetailDatainputktr2;
81 - /** 时刻表明细信息导入 */ 81 + /** 时刻表明细信息导入2(带版本) */
82 @NotNull 82 @NotNull
83 - private String ttinfodetailDatainputktr2ls; 83 + private String ttinfodetailDatainputktr2version;
84 /** 排班规则信息导入 */ 84 /** 排班规则信息导入 */
85 @NotNull 85 @NotNull
86 private String scheduleruleDatainputktr; 86 private String scheduleruleDatainputktr;
@@ -314,12 +314,12 @@ public class DataToolsProperties { @@ -314,12 +314,12 @@ public class DataToolsProperties {
314 this.carsconfigDataoutputktr = carsconfigDataoutputktr; 314 this.carsconfigDataoutputktr = carsconfigDataoutputktr;
315 } 315 }
316 316
317 - public String getTtinfodetailDatainputktr2ls() {  
318 - return ttinfodetailDatainputktr2ls; 317 + public String getTtinfodetailDatainputktr2version() {
  318 + return ttinfodetailDatainputktr2version;
319 } 319 }
320 320
321 - public void setTtinfodetailDatainputktr2ls(String ttinfodetailDatainputktr2ls) {  
322 - this.ttinfodetailDatainputktr2ls = ttinfodetailDatainputktr2ls; 321 + public void setTtinfodetailDatainputktr2version(String ttinfodetailDatainputktr2version) {
  322 + this.ttinfodetailDatainputktr2version = ttinfodetailDatainputktr2version;
323 } 323 }
324 324
325 public String getEmployeesconfigDataoutputktr() { 325 public String getEmployeesconfigDataoutputktr() {
src/main/resources/datatools/config-dev.properties
@@ -39,8 +39,8 @@ datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr @@ -39,8 +39,8 @@ datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr
39 datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr 39 datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr
40 # 时刻表明细信息导入2 40 # 时刻表明细信息导入2
41 datatools.ttinfodetail_datainputktr2=/datatools/ktrs/ttinfodetailDataInput2.ktr 41 datatools.ttinfodetail_datainputktr2=/datatools/ktrs/ttinfodetailDataInput2.ktr
42 -# 时刻表明细信息导入2_ls  
43 -datatools.ttinfodetail_datainputktr2ls=/datatools/ktrs/ttinfodetailDataInput2_ls.ktr 42 +# 时刻表明细信息导入2(版本化)
  43 +datatools.ttinfodetail_datainputktr2version=/datatools/ktrs/ttinfodetailDataInput2_version.ktr
44 44
45 # 车辆配置信息导入 45 # 车辆配置信息导入
46 datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr 46 datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr
src/main/resources/datatools/config-prod.properties
@@ -40,8 +40,8 @@ datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr @@ -40,8 +40,8 @@ datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr
40 datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr 40 datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr
41 # 时刻表明细信息导入2 41 # 时刻表明细信息导入2
42 datatools.ttinfodetail_datainputktr2=/datatools/ktrs/ttinfodetailDataInput2.ktr 42 datatools.ttinfodetail_datainputktr2=/datatools/ktrs/ttinfodetailDataInput2.ktr
43 -# 时刻表明细信息导入2_ls  
44 -datatools.ttinfodetail_datainputktr2ls=/datatools/ktrs/ttinfodetailDataInput2_ls.ktr 43 +# 时刻表明细信息导入2(版本化)
  44 +datatools.ttinfodetail_datainputktr2version=/datatools/ktrs/ttinfodetailDataInput2_version.ktr
45 45
46 # 车辆配置信息导入 46 # 车辆配置信息导入
47 datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr 47 datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr
src/main/resources/datatools/ktrs/ttinfodetailDataInput2_ls.ktr renamed to src/main/resources/datatools/ktrs/ttinfodetailDataInput2_version.ktr
@@ -416,6 +416,7 @@ @@ -416,6 +416,7 @@
416 <hop> <from>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 3</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 3</to><enabled>Y</enabled> </hop> 416 <hop> <from>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 3</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 3</to><enabled>Y</enabled> </hop>
417 <hop> <from>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</from><to>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop> 417 <hop> <from>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</from><to>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop>
418 <hop> <from>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</from><to>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop> 418 <hop> <from>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</from><to>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop>
  419 + <hop> <from>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</from><to>&#x66f4;&#x65b0;&#x65f6;&#x523b;&#x8868;&#x4e3b;&#x8868;&#x7248;&#x672c;</to><enabled>Y</enabled> </hop>
419 </order> 420 </order>
420 <step> 421 <step>
421 <name>&#x4e0a;&#x4e0b;&#x884c;NULL&#x5224;&#x5b9a;</name> 422 <name>&#x4e0a;&#x4e0b;&#x884c;NULL&#x5224;&#x5b9a;</name>
@@ -829,7 +830,7 @@ @@ -829,7 +830,7 @@
829 <optimizationLevel>9</optimizationLevel> 830 <optimizationLevel>9</optimizationLevel>
830 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> 831 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
831 <jsScript_name>Script 1</jsScript_name> 832 <jsScript_name>Script 1</jsScript_name>
832 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x53bb;&#x9664;&#x7ad9;&#x70b9;&#x540d;&#x79f0;&#x53f3;&#x4fa7;&#x591a;&#x4f59;&#x7684;&#x6570;&#x5b57;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;&#x28;&#x5c;d&#x2b;&#x24;&#x29;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;if &#x28;qdzname &#x21;&#x3d; &#x22;&#x51fa;&#x573a;&#x22; &#x26;&#x26; qdzname &#x21;&#x3d; &#x22;&#x8fdb;&#x573a;&#x22;&#x29; &#x7b;&#xa; qdzname &#x3d; qdzname &#x2b; &#x22;&#x25;&#x22;&#x3b; &#x2f;&#x2f; &#x6a21;&#x7cca;&#x5339;&#x914d;&#x6807;&#x8bc6;&#x7b26;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; sendtime&#x5904;&#x7406;&#xff0c;hhmm&#xff0c;hh&#x3a;mm&#xff0c;hh,mm&#xa;var sendtime_calcu &#x3d; sendtime.replace&#x28;&#x2f;&#x5c;s&#x2f;g, &#x22;&#x22;&#x29;&#x3b;&#xa;if &#x28;sendtime.length &#x3d;&#x3d; 5&#x29; &#x7b; &#x2f;&#x2f; &#x6700;&#x957f;&#x683c;&#x5f0f;&#xff0c;&#x5305;&#x62ec;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x7edf;&#x4e00;&#x628a;&#x5206;&#x9694;&#x7b26;&#x66ff;&#x6362;&#x6210;&#x5192;&#x53f7;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;3, 2&#x29;&#x3b;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 4&#x29; &#x7b;&#xa; if &#x28;sendtime.indexOf&#x28;&#x22;&#x3a;&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x5192;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x65e0;&#x9700;&#x4fee;&#x6539;&#xa; sendtime_calcu &#x3d; sendtime&#x3b;&#xa; &#x7d; else if &#x28;sendtime.indexOf&#x28;&#x22;,&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d; else &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 3&#x29; &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;1, 2&#x29;&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5168;&#x90e8;&#x4fee;&#x6b63;&#x5b8c;&#x6bd5;&#x540e;&#xff0c;&#x5982;&#x679c;&#x957f;&#x5ea6;&#x4e0d;&#x662f;5&#xff0c;&#x524d;&#x9762;&#x8865;0&#xa;if &#x28;sendtime_calcu.length &#x21;&#x3d; 5&#x29; &#x7b;&#xa; sendtime_calcu &#x3d; &#x22;0&#x22; &#x2b; sendtime_calcu&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x5206;&#x73ed;&#xa;var isfb &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x505c;&#x9a76;&#xa;var ists &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;isCanceled&#xa;var iscanceled &#x3d; 0&#x3b;</jsScript_script> 833 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x5982;&#x679c;&#x7ad9;&#x540d;&#x4e2d;&#x6709;&#x7c7b;&#x4f3c;-&#x3e;&#x7b;&#x6570;&#x5b57;&#x7d;&#xff0c;&#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x8fc7;&#x6ee4;&#x6389;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;-&#x3e;&#x5c;d&#x2b;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;if &#x28;qdzname &#x21;&#x3d; &#x22;&#x51fa;&#x573a;&#x22; &#x26;&#x26; qdzname &#x21;&#x3d; &#x22;&#x8fdb;&#x573a;&#x22;&#x29; &#x7b;&#xa; qdzname &#x3d; qdzname &#x2b; &#x22;&#x25;&#x22;&#x3b; &#x2f;&#x2f; &#x6a21;&#x7cca;&#x5339;&#x914d;&#x6807;&#x8bc6;&#x7b26;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; sendtime&#x5904;&#x7406;&#xff0c;hhmm&#xff0c;hh&#x3a;mm&#xff0c;hh,mm&#xa;var sendtime_calcu &#x3d; sendtime.replace&#x28;&#x2f;&#x5c;s&#x2f;g, &#x22;&#x22;&#x29;&#x3b;&#xa;if &#x28;sendtime.length &#x3d;&#x3d; 5&#x29; &#x7b; &#x2f;&#x2f; &#x6700;&#x957f;&#x683c;&#x5f0f;&#xff0c;&#x5305;&#x62ec;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x7edf;&#x4e00;&#x628a;&#x5206;&#x9694;&#x7b26;&#x66ff;&#x6362;&#x6210;&#x5192;&#x53f7;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;3, 2&#x29;&#x3b;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 4&#x29; &#x7b;&#xa; if &#x28;sendtime.indexOf&#x28;&#x22;&#x3a;&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x5192;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x65e0;&#x9700;&#x4fee;&#x6539;&#xa; sendtime_calcu &#x3d; sendtime&#x3b;&#xa; &#x7d; else if &#x28;sendtime.indexOf&#x28;&#x22;,&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d; else &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 3&#x29; &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;1, 2&#x29;&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5168;&#x90e8;&#x4fee;&#x6b63;&#x5b8c;&#x6bd5;&#x540e;&#xff0c;&#x5982;&#x679c;&#x957f;&#x5ea6;&#x4e0d;&#x662f;5&#xff0c;&#x524d;&#x9762;&#x8865;0&#xa;if &#x28;sendtime_calcu.length &#x21;&#x3d; 5&#x29; &#x7b;&#xa; sendtime_calcu &#x3d; &#x22;0&#x22; &#x2b; sendtime_calcu&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x5206;&#x73ed;&#xa;var isfb &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x505c;&#x9a76;&#xa;var ists &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;isCanceled&#xa;var iscanceled &#x3d; 0&#x3b;</jsScript_script>
833 </jsScript> </jsScripts> <fields> <field> <name>qdzname</name> 834 </jsScript> </jsScripts> <fields> <field> <name>qdzname</name>
834 <rename>qdzname</rename> 835 <rename>qdzname</rename>
835 <type>String</type> 836 <type>String</type>
@@ -1095,6 +1096,11 @@ @@ -1095,6 +1096,11 @@
1095 <rename>ists</rename> 1096 <rename>ists</rename>
1096 <update>Y</update> 1097 <update>Y</update>
1097 </value> 1098 </value>
  1099 + <value>
  1100 + <name>line_version</name>
  1101 + <rename>version</rename>
  1102 + <update>Y</update>
  1103 + </value>
1098 </lookup> 1104 </lookup>
1099 <cluster_schema/> 1105 <cluster_schema/>
1100 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 1106 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
@@ -1241,6 +1247,11 @@ @@ -1241,6 +1247,11 @@
1241 <rename>ists</rename> 1247 <rename>ists</rename>
1242 <update>Y</update> 1248 <update>Y</update>
1243 </value> 1249 </value>
  1250 + <value>
  1251 + <name>line_version</name>
  1252 + <rename>version</rename>
  1253 + <update>Y</update>
  1254 + </value>
1244 </lookup> 1255 </lookup>
1245 <cluster_schema/> 1256 <cluster_schema/>
1246 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 1257 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
@@ -1387,6 +1398,11 @@ @@ -1387,6 +1398,11 @@
1387 <rename>ists</rename> 1398 <rename>ists</rename>
1388 <update>Y</update> 1399 <update>Y</update>
1389 </value> 1400 </value>
  1401 + <value>
  1402 + <name>line_version</name>
  1403 + <rename>version</rename>
  1404 + <update>Y</update>
  1405 + </value>
1390 </lookup> 1406 </lookup>
1391 <cluster_schema/> 1407 <cluster_schema/>
1392 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 1408 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
@@ -1465,6 +1481,45 @@ @@ -1465,6 +1481,45 @@
1465 </step> 1481 </step>
1466 1482
1467 <step> 1483 <step>
  1484 + <name>&#x66f4;&#x65b0;&#x65f6;&#x523b;&#x8868;&#x4e3b;&#x8868;&#x7248;&#x672c;</name>
  1485 + <type>Update</type>
  1486 + <description/>
  1487 + <distribute>Y</distribute>
  1488 + <custom_distribution/>
  1489 + <copies>1</copies>
  1490 + <partitioning>
  1491 + <method>none</method>
  1492 + <schema_name/>
  1493 + </partitioning>
  1494 + <connection>bus_control_variable</connection>
  1495 + <skip_lookup>N</skip_lookup>
  1496 + <commit>100</commit>
  1497 + <use_batch>N</use_batch>
  1498 + <error_ignored>N</error_ignored>
  1499 + <ignore_flag_field/>
  1500 + <lookup>
  1501 + <schema/>
  1502 + <table>bsth_c_s_ttinfo</table>
  1503 + <key>
  1504 + <name>ttid</name>
  1505 + <field>id</field>
  1506 + <condition>&#x3d;</condition>
  1507 + <name2/>
  1508 + </key>
  1509 + <value>
  1510 + <name>line_version</name>
  1511 + <rename>version</rename>
  1512 + </value>
  1513 + </lookup>
  1514 + <cluster_schema/>
  1515 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1516 + <xloc>863</xloc>
  1517 + <yloc>338</yloc>
  1518 + <draw>Y</draw>
  1519 + </GUI>
  1520 + </step>
  1521 +
  1522 + <step>
1468 <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</name> 1523 <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</name>
1469 <type>DBLookup</type> 1524 <type>DBLookup</type>
1470 <description/> 1525 <description/>
@@ -2197,7 +2252,7 @@ @@ -2197,7 +2252,7 @@
2197 <cluster_schema/> 2252 <cluster_schema/>
2198 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 2253 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
2199 <xloc>1013</xloc> 2254 <xloc>1013</xloc>
2200 - <yloc>265</yloc> 2255 + <yloc>221</yloc>
2201 <draw>Y</draw> 2256 <draw>Y</draw>
2202 </GUI> 2257 </GUI>
2203 </step> 2258 </step>
@@ -2733,6 +2788,41 @@ @@ -2733,6 +2788,41 @@
2733 </step> 2788 </step>
2734 2789
2735 <step> 2790 <step>
  2791 + <name>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</name>
  2792 + <type>SelectValues</type>
  2793 + <description/>
  2794 + <distribute>N</distribute>
  2795 + <custom_distribution/>
  2796 + <copies>1</copies>
  2797 + <partitioning>
  2798 + <method>none</method>
  2799 + <schema_name/>
  2800 + </partitioning>
  2801 + <fields> <select_unspecified>Y</select_unspecified>
  2802 + <meta> <name>zdlyversion_</name>
  2803 + <rename>version</rename>
  2804 + <type>Integer</type>
  2805 + <length>-2</length>
  2806 + <precision>-2</precision>
  2807 + <conversion_mask/>
  2808 + <date_format_lenient>false</date_format_lenient>
  2809 + <date_format_locale/>
  2810 + <date_format_timezone/>
  2811 + <lenient_string_to_number>false</lenient_string_to_number>
  2812 + <encoding/>
  2813 + <decimal_symbol/>
  2814 + <grouping_symbol/>
  2815 + <currency_symbol/>
  2816 + <storage_type/>
  2817 + </meta> </fields> <cluster_schema/>
  2818 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2819 + <xloc>1016</xloc>
  2820 + <yloc>305</yloc>
  2821 + <draw>Y</draw>
  2822 + </GUI>
  2823 + </step>
  2824 +
  2825 + <step>
2736 <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</name> 2826 <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</name>
2737 <type>SelectValues</type> 2827 <type>SelectValues</type>
2738 <description/> 2828 <description/>
@@ -3071,41 +3161,6 @@ @@ -3071,41 +3161,6 @@
3071 </GUI> 3161 </GUI>
3072 </step> 3162 </step>
3073 3163
3074 - <step>  
3075 - <name>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</name>  
3076 - <type>SelectValues</type>  
3077 - <description/>  
3078 - <distribute>Y</distribute>  
3079 - <custom_distribution/>  
3080 - <copies>1</copies>  
3081 - <partitioning>  
3082 - <method>none</method>  
3083 - <schema_name/>  
3084 - </partitioning>  
3085 - <fields> <select_unspecified>Y</select_unspecified>  
3086 - <meta> <name>zdlyversion_</name>  
3087 - <rename>version</rename>  
3088 - <type>Integer</type>  
3089 - <length>-2</length>  
3090 - <precision>-2</precision>  
3091 - <conversion_mask/>  
3092 - <date_format_lenient>false</date_format_lenient>  
3093 - <date_format_locale/>  
3094 - <date_format_timezone/>  
3095 - <lenient_string_to_number>false</lenient_string_to_number>  
3096 - <encoding/>  
3097 - <decimal_symbol/>  
3098 - <grouping_symbol/>  
3099 - <currency_symbol/>  
3100 - <storage_type/>  
3101 - </meta> </fields> <cluster_schema/>  
3102 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
3103 - <xloc>1015</xloc>  
3104 - <yloc>333</yloc>  
3105 - <draw>Y</draw>  
3106 - </GUI>  
3107 - </step>  
3108 -  
3109 <step_error_handling> 3164 <step_error_handling>
3110 <error> 3165 <error>
3111 <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</source_step> 3166 <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</source_step>
src/main/resources/datatools/ktrs/ttinfodetailDataInputMetaData.ktr
@@ -35,6 +35,11 @@ @@ -35,6 +35,11 @@
35 <description>&#x7ebf;&#x8def;&#x6807;&#x51c6;id</description> 35 <description>&#x7ebf;&#x8def;&#x6807;&#x51c6;id</description>
36 </parameter> 36 </parameter>
37 <parameter> 37 <parameter>
  38 + <name>lineversion</name>
  39 + <default_value>-1</default_value>
  40 + <description>&#x7ebf;&#x8def;&#x7248;&#x672c;</description>
  41 + </parameter>
  42 + <parameter>
38 <name>normalizefieldnames</name> 43 <name>normalizefieldnames</name>
39 <default_value>&#x51fa;&#x573a;,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;1,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;1,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;2,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;2,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;3,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;3,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;4,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;4,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;5,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;5,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;6,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;6,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;7,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;7,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;8,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;8,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;9,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;9,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;10,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;10,&#x8fdb;&#x573a;</default_value> 44 <default_value>&#x51fa;&#x573a;,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;1,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;1,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;2,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;2,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;3,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;3,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;4,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;4,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;5,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;5,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;6,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;6,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;7,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;7,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;8,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;8,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;9,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;9,&#x4e1c;&#x5ddd;&#x8def;&#x5730;&#x94c1;&#x7ad9;10,&#x5858;&#x6cfe;&#x8def;&#x5c1a;&#x4e49;&#x8def;10,&#x8fdb;&#x573a;</default_value>
40 <description>&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;&#x5b57;&#x6bb5;&#x540d;&#xff0c;&#x4ee5;&#x9017;&#x53f7;&#x8fde;&#x63a5;</description> 45 <description>&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;&#x5b57;&#x6bb5;&#x540d;&#xff0c;&#x4ee5;&#x9017;&#x53f7;&#x8fde;&#x63a5;</description>
@@ -62,18 +67,13 @@ @@ -62,18 +67,13 @@
62 <parameter> 67 <parameter>
63 <name>xlid</name> 68 <name>xlid</name>
64 <default_value>-999</default_value> 69 <default_value>-999</default_value>
65 - <description/> 70 + <description>&#x7ebf;&#x8def;id</description>
66 </parameter> 71 </parameter>
67 <parameter> 72 <parameter>
68 <name>xlname</name> 73 <name>xlname</name>
69 <default_value>&#x95f5;&#x884c;26&#x8def;</default_value> 74 <default_value>&#x95f5;&#x884c;26&#x8def;</default_value>
70 <description>&#x7ebf;&#x8def;&#x540d;&#x79f0;</description> 75 <description>&#x7ebf;&#x8def;&#x540d;&#x79f0;</description>
71 </parameter> 76 </parameter>
72 - <parameter>  
73 - <name>zdlyversion</name>  
74 - <default_value>-1</default_value>  
75 - <description/>  
76 - </parameter>  
77 </parameters> 77 </parameters>
78 <log> 78 <log>
79 <trans-log-table><connection/> 79 <trans-log-table><connection/>
@@ -436,15 +436,15 @@ @@ -436,15 +436,15 @@
436 <source_step>&#x589e;&#x52a0;normalize&#x5143;&#x6570;&#x636e;</source_step> 436 <source_step>&#x589e;&#x52a0;normalize&#x5143;&#x6570;&#x636e;</source_step>
437 <source_field>nfieldname</source_field> 437 <source_field>nfieldname</source_field>
438 </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name> 438 </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name>
439 - <target_attribute_key>LENGTH</target_attribute_key>  
440 - <target_detail>Y</target_detail>  
441 - <source_step>&#x589e;&#x52a0;excel&#x5b57;&#x6bb5;&#x5176;&#x4ed6;&#x5143;&#x6570;&#x636e;</source_step>  
442 - <source_field>length</source_field>  
443 - </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name>  
444 <target_attribute_key>SHEET_NAME</target_attribute_key> 439 <target_attribute_key>SHEET_NAME</target_attribute_key>
445 <target_detail>Y</target_detail> 440 <target_detail>Y</target_detail>
446 <source_step>&#x83b7;&#x53d6;excel&#x6587;&#x4ef6;&#x540d;</source_step> 441 <source_step>&#x83b7;&#x53d6;excel&#x6587;&#x4ef6;&#x540d;</source_step>
447 <source_field>sheetname_</source_field> 442 <source_field>sheetname_</source_field>
  443 + </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name>
  444 + <target_attribute_key>LENGTH</target_attribute_key>
  445 + <target_detail>Y</target_detail>
  446 + <source_step>&#x589e;&#x52a0;excel&#x5b57;&#x6bb5;&#x5176;&#x4ed6;&#x5143;&#x6570;&#x636e;</source_step>
  447 + <source_field>length</source_field>
448 </mapping> <mapping> <target_step_name>&#x589e;&#x52a0;&#x65f6;&#x523b;&#x8868;&#x540d;&#x5b57;&#xff0c;&#x7ebf;&#x8def;&#x540d;&#x5b57;&#xff0c;&#x505c;&#x8f66;&#x573a;&#x540d;&#x5b57;</target_step_name> 448 </mapping> <mapping> <target_step_name>&#x589e;&#x52a0;&#x65f6;&#x523b;&#x8868;&#x540d;&#x5b57;&#xff0c;&#x7ebf;&#x8def;&#x540d;&#x5b57;&#xff0c;&#x505c;&#x8f66;&#x573a;&#x540d;&#x5b57;</target_step_name>
449 <target_attribute_key>NAME</target_attribute_key> 449 <target_attribute_key>NAME</target_attribute_key>
450 <target_detail>Y</target_detail> 450 <target_detail>Y</target_detail>
@@ -460,41 +460,41 @@ @@ -460,41 +460,41 @@
460 <target_detail>Y</target_detail> 460 <target_detail>Y</target_detail>
461 <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c;</source_step> 461 <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c;</source_step>
462 <source_field>fieldName</source_field> 462 <source_field>fieldName</source_field>
463 - </mapping> <mapping> <target_step_name>&#x884c;&#x8f6c;&#x5217;</target_step_name>  
464 - <target_attribute_key>VALUE</target_attribute_key>  
465 - <target_detail>Y</target_detail>  
466 - <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</source_step>  
467 - <source_field>fieldName</source_field>  
468 </mapping> <mapping> <target_step_name>Excel&#x8f93;&#x5165;</target_step_name> 463 </mapping> <mapping> <target_step_name>Excel&#x8f93;&#x5165;</target_step_name>
469 <target_attribute_key>TRIM_TYPE</target_attribute_key> 464 <target_attribute_key>TRIM_TYPE</target_attribute_key>
470 <target_detail>Y</target_detail> 465 <target_detail>Y</target_detail>
471 <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c;</source_step> 466 <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c;</source_step>
472 <source_field>trim_type</source_field> 467 <source_field>trim_type</source_field>
473 </mapping> <mapping> <target_step_name>&#x884c;&#x8f6c;&#x5217;</target_step_name> 468 </mapping> <mapping> <target_step_name>&#x884c;&#x8f6c;&#x5217;</target_step_name>
474 - <target_attribute_key>NORMALISED</target_attribute_key> 469 + <target_attribute_key>VALUE</target_attribute_key>
475 <target_detail>Y</target_detail> 470 <target_detail>Y</target_detail>
476 <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</source_step> 471 <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</source_step>
477 - <source_field>value</source_field> 472 + <source_field>fieldName</source_field>
478 </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name> 473 </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name>
479 <target_attribute_key>REPEAT</target_attribute_key> 474 <target_attribute_key>REPEAT</target_attribute_key>
480 <target_detail>Y</target_detail> 475 <target_detail>Y</target_detail>
481 <source_step>&#x589e;&#x52a0;excel&#x5b57;&#x6bb5;&#x5176;&#x4ed6;&#x5143;&#x6570;&#x636e;</source_step> 476 <source_step>&#x589e;&#x52a0;excel&#x5b57;&#x6bb5;&#x5176;&#x4ed6;&#x5143;&#x6570;&#x636e;</source_step>
482 <source_field>repeat</source_field> 477 <source_field>repeat</source_field>
483 - </mapping> <mapping> <target_step_name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</target_step_name> 478 + </mapping> <mapping> <target_step_name>&#x884c;&#x8f6c;&#x5217;</target_step_name>
484 <target_attribute_key>NORMALISED</target_attribute_key> 479 <target_attribute_key>NORMALISED</target_attribute_key>
485 <target_detail>Y</target_detail> 480 <target_detail>Y</target_detail>
486 - <source_step>&#x589e;&#x52a0;normalize&#x5143;&#x6570;&#x636e;</source_step>  
487 - <source_field>valuefield</source_field> 481 + <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</source_step>
  482 + <source_field>value</source_field>
488 </mapping> <mapping> <target_step_name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</target_step_name> 483 </mapping> <mapping> <target_step_name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</target_step_name>
489 - <target_attribute_key>VALUE</target_attribute_key> 484 + <target_attribute_key>NORMALISED</target_attribute_key>
490 <target_detail>Y</target_detail> 485 <target_detail>Y</target_detail>
491 <source_step>&#x589e;&#x52a0;normalize&#x5143;&#x6570;&#x636e;</source_step> 486 <source_step>&#x589e;&#x52a0;normalize&#x5143;&#x6570;&#x636e;</source_step>
492 - <source_field>nfieldname</source_field> 487 + <source_field>valuefield</source_field>
493 </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name> 488 </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name>
494 <target_attribute_key>FORMAT</target_attribute_key> 489 <target_attribute_key>FORMAT</target_attribute_key>
495 <target_detail>Y</target_detail> 490 <target_detail>Y</target_detail>
496 <source_step>&#x589e;&#x52a0;excel&#x5b57;&#x6bb5;&#x5176;&#x4ed6;&#x5143;&#x6570;&#x636e;</source_step> 491 <source_step>&#x589e;&#x52a0;excel&#x5b57;&#x6bb5;&#x5176;&#x4ed6;&#x5143;&#x6570;&#x636e;</source_step>
497 <source_field>format</source_field> 492 <source_field>format</source_field>
  493 + </mapping> <mapping> <target_step_name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</target_step_name>
  494 + <target_attribute_key>VALUE</target_attribute_key>
  495 + <target_detail>Y</target_detail>
  496 + <source_step>&#x589e;&#x52a0;normalize&#x5143;&#x6570;&#x636e;</source_step>
  497 + <source_field>nfieldname</source_field>
498 </mapping> <mapping> <target_step_name>Excel&#x8f93;&#x5165;</target_step_name> 498 </mapping> <mapping> <target_step_name>Excel&#x8f93;&#x5165;</target_step_name>
499 <target_attribute_key>PRECISION</target_attribute_key> 499 <target_attribute_key>PRECISION</target_attribute_key>
500 <target_detail>Y</target_detail> 500 <target_detail>Y</target_detail>
@@ -917,6 +917,63 @@ @@ -917,6 +917,63 @@
917 </step> 917 </step>
918 918
919 <step> 919 <step>
  920 + <name>&#x589e;&#x52a0;&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c; metadata</name>
  921 + <type>Constant</type>
  922 + <description/>
  923 + <distribute>Y</distribute>
  924 + <custom_distribution/>
  925 + <copies>1</copies>
  926 + <partitioning>
  927 + <method>none</method>
  928 + <schema_name/>
  929 + </partitioning>
  930 + <fields>
  931 + <field>
  932 + <name>col_name</name>
  933 + <type>String</type>
  934 + <format/>
  935 + <currency/>
  936 + <decimal/>
  937 + <group/>
  938 + <nullif>zdlyversion_</nullif>
  939 + <length>-1</length>
  940 + <precision>-1</precision>
  941 + <set_empty_string>N</set_empty_string>
  942 + </field>
  943 + <field>
  944 + <name>col_type</name>
  945 + <type>String</type>
  946 + <format/>
  947 + <currency/>
  948 + <decimal/>
  949 + <group/>
  950 + <nullif>String</nullif>
  951 + <length>-1</length>
  952 + <precision>-1</precision>
  953 + <set_empty_string>N</set_empty_string>
  954 + </field>
  955 + <field>
  956 + <name>col_value</name>
  957 + <type>String</type>
  958 + <format/>
  959 + <currency/>
  960 + <decimal/>
  961 + <group/>
  962 + <nullif>replace</nullif>
  963 + <length>-1</length>
  964 + <precision>-1</precision>
  965 + <set_empty_string>N</set_empty_string>
  966 + </field>
  967 + </fields>
  968 + <cluster_schema/>
  969 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  970 + <xloc>390</xloc>
  971 + <yloc>532</yloc>
  972 + <draw>Y</draw>
  973 + </GUI>
  974 + </step>
  975 +
  976 + <step>
920 <name>&#x589e;&#x52a0;&#x7ebf;&#x8def;&#x540d;&#x79f0;metadata</name> 977 <name>&#x589e;&#x52a0;&#x7ebf;&#x8def;&#x540d;&#x79f0;metadata</name>
921 <type>Constant</type> 978 <type>Constant</type>
922 <description/> 979 <description/>
@@ -1056,6 +1113,31 @@ @@ -1056,6 +1113,31 @@
1056 </step> 1113 </step>
1057 1114
1058 <step> 1115 <step>
  1116 + <name>&#x66ff;&#x6362;&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;</name>
  1117 + <type>SetValueField</type>
  1118 + <description/>
  1119 + <distribute>Y</distribute>
  1120 + <custom_distribution/>
  1121 + <copies>1</copies>
  1122 + <partitioning>
  1123 + <method>none</method>
  1124 + <schema_name/>
  1125 + </partitioning>
  1126 + <fields>
  1127 + <field>
  1128 + <name>col_value</name>
  1129 + <replaceby>zdlyversion_</replaceby>
  1130 + </field>
  1131 + </fields>
  1132 + <cluster_schema/>
  1133 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1134 + <xloc>594</xloc>
  1135 + <yloc>532</yloc>
  1136 + <draw>Y</draw>
  1137 + </GUI>
  1138 + </step>
  1139 +
  1140 + <step>
1059 <name>&#x66ff;&#x6362;&#x7ebf;&#x8def;&#x540d;&#x79f0;</name> 1141 <name>&#x66ff;&#x6362;&#x7ebf;&#x8def;&#x540d;&#x79f0;</name>
1060 <type>SetValueField</type> 1142 <type>SetValueField</type>
1061 <description/> 1143 <description/>
@@ -1081,6 +1163,38 @@ @@ -1081,6 +1163,38 @@
1081 </step> 1163 </step>
1082 1164
1083 <step> 1165 <step>
  1166 + <name>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;metadata&#x5b57;&#x6bb5;</name>
  1167 + <type>SelectValues</type>
  1168 + <description/>
  1169 + <distribute>Y</distribute>
  1170 + <custom_distribution/>
  1171 + <copies>1</copies>
  1172 + <partitioning>
  1173 + <method>none</method>
  1174 + <schema_name/>
  1175 + </partitioning>
  1176 + <fields> <field> <name>col_name</name>
  1177 + <rename/>
  1178 + <length>-2</length>
  1179 + <precision>-2</precision>
  1180 + </field> <field> <name>col_type</name>
  1181 + <rename/>
  1182 + <length>-2</length>
  1183 + <precision>-2</precision>
  1184 + </field> <field> <name>col_value</name>
  1185 + <rename/>
  1186 + <length>-2</length>
  1187 + <precision>-2</precision>
  1188 + </field> <select_unspecified>N</select_unspecified>
  1189 + </fields> <cluster_schema/>
  1190 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1191 + <xloc>741</xloc>
  1192 + <yloc>533</yloc>
  1193 + <draw>Y</draw>
  1194 + </GUI>
  1195 + </step>
  1196 +
  1197 + <step>
1084 <name>&#x7ebf;&#x8def;&#x540d;&#x79f0;metadata&#x5b57;&#x6bb5;</name> 1198 <name>&#x7ebf;&#x8def;&#x540d;&#x79f0;metadata&#x5b57;&#x6bb5;</name>
1085 <type>SelectValues</type> 1199 <type>SelectValues</type>
1086 <description/> 1200 <description/>
@@ -1302,6 +1416,39 @@ @@ -1302,6 +1416,39 @@
1302 </step> 1416 </step>
1303 1417
1304 <step> 1418 <step>
  1419 + <name>&#x83b7;&#x53d6;&#x7ad9;&#x70b9;&#x8def;&#x7531;version</name>
  1420 + <type>GetVariable</type>
  1421 + <description/>
  1422 + <distribute>Y</distribute>
  1423 + <custom_distribution/>
  1424 + <copies>1</copies>
  1425 + <partitioning>
  1426 + <method>none</method>
  1427 + <schema_name/>
  1428 + </partitioning>
  1429 + <fields>
  1430 + <field>
  1431 + <name>zdlyversion_</name>
  1432 + <variable>&#x24;&#x7b;lineversion&#x7d;</variable>
  1433 + <type>String</type>
  1434 + <format/>
  1435 + <currency/>
  1436 + <decimal/>
  1437 + <group/>
  1438 + <length>-1</length>
  1439 + <precision>-1</precision>
  1440 + <trim_type>none</trim_type>
  1441 + </field>
  1442 + </fields>
  1443 + <cluster_schema/>
  1444 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1445 + <xloc>187</xloc>
  1446 + <yloc>534</yloc>
  1447 + <draw>Y</draw>
  1448 + </GUI>
  1449 + </step>
  1450 +
  1451 + <step>
1305 <name>&#x83b7;&#x53d6;&#x7ebf;&#x8def;&#x540d;&#x79f0;</name> 1452 <name>&#x83b7;&#x53d6;&#x7ebf;&#x8def;&#x540d;&#x79f0;</name>
1306 <type>GetVariable</type> 1453 <type>GetVariable</type>
1307 <description/> 1454 <description/>
@@ -1419,153 +1566,6 @@ @@ -1419,153 +1566,6 @@
1419 </GUI> 1566 </GUI>
1420 </step> 1567 </step>
1421 1568
1422 - <step>  
1423 - <name>&#x589e;&#x52a0;&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c; metadata</name>  
1424 - <type>Constant</type>  
1425 - <description/>  
1426 - <distribute>Y</distribute>  
1427 - <custom_distribution/>  
1428 - <copies>1</copies>  
1429 - <partitioning>  
1430 - <method>none</method>  
1431 - <schema_name/>  
1432 - </partitioning>  
1433 - <fields>  
1434 - <field>  
1435 - <name>col_name</name>  
1436 - <type>String</type>  
1437 - <format/>  
1438 - <currency/>  
1439 - <decimal/>  
1440 - <group/>  
1441 - <nullif>zdlyversion_</nullif>  
1442 - <length>-1</length>  
1443 - <precision>-1</precision>  
1444 - <set_empty_string>N</set_empty_string>  
1445 - </field>  
1446 - <field>  
1447 - <name>col_type</name>  
1448 - <type>String</type>  
1449 - <format/>  
1450 - <currency/>  
1451 - <decimal/>  
1452 - <group/>  
1453 - <nullif>String</nullif>  
1454 - <length>-1</length>  
1455 - <precision>-1</precision>  
1456 - <set_empty_string>N</set_empty_string>  
1457 - </field>  
1458 - <field>  
1459 - <name>col_value</name>  
1460 - <type>String</type>  
1461 - <format/>  
1462 - <currency/>  
1463 - <decimal/>  
1464 - <group/>  
1465 - <nullif>replace</nullif>  
1466 - <length>-1</length>  
1467 - <precision>-1</precision>  
1468 - <set_empty_string>N</set_empty_string>  
1469 - </field>  
1470 - </fields>  
1471 - <cluster_schema/>  
1472 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1473 - <xloc>390</xloc>  
1474 - <yloc>532</yloc>  
1475 - <draw>Y</draw>  
1476 - </GUI>  
1477 - </step>  
1478 -  
1479 - <step>  
1480 - <name>&#x66ff;&#x6362;&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;</name>  
1481 - <type>SetValueField</type>  
1482 - <description/>  
1483 - <distribute>Y</distribute>  
1484 - <custom_distribution/>  
1485 - <copies>1</copies>  
1486 - <partitioning>  
1487 - <method>none</method>  
1488 - <schema_name/>  
1489 - </partitioning>  
1490 - <fields>  
1491 - <field>  
1492 - <name>col_value</name>  
1493 - <replaceby>zdlyversion_</replaceby>  
1494 - </field>  
1495 - </fields>  
1496 - <cluster_schema/>  
1497 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1498 - <xloc>594</xloc>  
1499 - <yloc>532</yloc>  
1500 - <draw>Y</draw>  
1501 - </GUI>  
1502 - </step>  
1503 -  
1504 - <step>  
1505 - <name>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;metadata&#x5b57;&#x6bb5;</name>  
1506 - <type>SelectValues</type>  
1507 - <description/>  
1508 - <distribute>Y</distribute>  
1509 - <custom_distribution/>  
1510 - <copies>1</copies>  
1511 - <partitioning>  
1512 - <method>none</method>  
1513 - <schema_name/>  
1514 - </partitioning>  
1515 - <fields> <field> <name>col_name</name>  
1516 - <rename/>  
1517 - <length>-2</length>  
1518 - <precision>-2</precision>  
1519 - </field> <field> <name>col_type</name>  
1520 - <rename/>  
1521 - <length>-2</length>  
1522 - <precision>-2</precision>  
1523 - </field> <field> <name>col_value</name>  
1524 - <rename/>  
1525 - <length>-2</length>  
1526 - <precision>-2</precision>  
1527 - </field> <select_unspecified>N</select_unspecified>  
1528 - </fields> <cluster_schema/>  
1529 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1530 - <xloc>741</xloc>  
1531 - <yloc>533</yloc>  
1532 - <draw>Y</draw>  
1533 - </GUI>  
1534 - </step>  
1535 -  
1536 - <step>  
1537 - <name>&#x83b7;&#x53d6;&#x7ad9;&#x70b9;&#x8def;&#x7531;version</name>  
1538 - <type>GetVariable</type>  
1539 - <description/>  
1540 - <distribute>Y</distribute>  
1541 - <custom_distribution/>  
1542 - <copies>1</copies>  
1543 - <partitioning>  
1544 - <method>none</method>  
1545 - <schema_name/>  
1546 - </partitioning>  
1547 - <fields>  
1548 - <field>  
1549 - <name>zdlyversion_</name>  
1550 - <variable>&#x24;&#x7b;zdlyversion&#x7d;</variable>  
1551 - <type>String</type>  
1552 - <format/>  
1553 - <currency/>  
1554 - <decimal/>  
1555 - <group/>  
1556 - <length>-1</length>  
1557 - <precision>-1</precision>  
1558 - <trim_type>none</trim_type>  
1559 - </field>  
1560 - </fields>  
1561 - <cluster_schema/>  
1562 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1563 - <xloc>187</xloc>  
1564 - <yloc>534</yloc>  
1565 - <draw>Y</draw>  
1566 - </GUI>  
1567 - </step>  
1568 -  
1569 <step_error_handling> 1569 <step_error_handling>
1570 </step_error_handling> 1570 </step_error_handling>
1571 <slave-step-copy-partition-distribution> 1571 <slave-step-copy-partition-distribution>
src/main/resources/datatools/ktrs/ttinfodetailDataOutputMetaData.ktr
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 </parameter> 16 </parameter>
17 <parameter> 17 <parameter>
18 <name>injectktrfile</name> 18 <name>injectktrfile</name>
19 - <default_value>&#x2f;Users&#x2f;xu&#x2f;resource&#x2f;project_code&#x2f;bsth_project&#x2f;bsth_control&#x2f;src&#x2f;main&#x2f;resources&#x2f;datatools&#x2f;ktrs&#x2f;ttinfodetailDataOutput.ktr</default_value> 19 + <default_value>&#x2f;Users&#x2f;xu&#x2f;resource&#x2f;project_code&#x2f;bsth_project&#x2f;bsth_control_parent&#x2f;bsth_control&#x2f;src&#x2f;main&#x2f;resources&#x2f;datatools&#x2f;ktrs&#x2f;ttinfodetailDataOutput.ktr</default_value>
20 <description>&#x6ce8;&#x5165;&#x5143;&#x6570;&#x636e;&#x7684;ktr&#x6587;&#x4ef6;</description> 20 <description>&#x6ce8;&#x5165;&#x5143;&#x6570;&#x636e;&#x7684;ktr&#x6587;&#x4ef6;</description>
21 </parameter> 21 </parameter>
22 <parameter> 22 <parameter>
@@ -91,8 +91,8 @@ @@ -91,8 +91,8 @@
91 <notepads> 91 <notepads>
92 <notepad> 92 <notepad>
93 <note>TODO&#xff1a;&#x5982;&#x679c;groupby &#x52a0;&#x5165;bctype&#xff0c;&#xa;&#x5219;&#x4ee5;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;&#xff0c;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5206;&#x7ec4;&#x7684;&#x6570;&#x636e;&#x53ef;&#x80fd;&#x91cd;&#x590d;&#xff0c;&#xa;&#x5e94;&#x4e3a;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x53ef;&#x80fd;&#x4e0d;&#x4e00;&#x6837;&#xff08;&#x5bfc;&#x5165;&#x4e4b;&#x540e;&#x4eba;&#x4e3a;&#x4fee;&#x6539;&#x7684;&#xff0c;&#x5982;&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6539;&#x6210;&#x533a;&#x95f4;&#xff09;&#xff0c;&#xa;&#x56e0;&#x4e3a;&#x5bfc;&#x51fa;&#x65f6;&#x5fc5;&#x987b;&#x6570;&#x636e;&#x4e0d;&#x91cd;&#x590d;&#xff0c;&#x8fd9;&#x91cc;&#x7684;&#x89e3;&#x51b3;&#x65b9;&#x6cd5;&#xff0c;&#x53ea;&#x4f7f;&#x7528;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;&#x5206;&#x7ec4;&#xff0c;&#xa;&#x4ee5;&#x540e;&#x5efa;&#x8bae;&#xff0c;&#x8fd8;&#x662f;&#x539f;&#x6765;&#x7684;&#x65b9;&#x5f0f;&#x5206;&#x7ec4;&#xff0c;&#x7136;&#x540e;&#x628a;&#x66f4;&#x65b0;&#x65f6;&#x95f4;&#x665a;&#x7684;&#x53bb;&#x9664;&#xa;&#xa;&#x4ee5;&#x540e;&#x6539;&#x6210;&#x53bb;&#x9664;&#x91cd;&#x590d;&#x7eaa;&#x5f55;</note> 93 <note>TODO&#xff1a;&#x5982;&#x679c;groupby &#x52a0;&#x5165;bctype&#xff0c;&#xa;&#x5219;&#x4ee5;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;&#xff0c;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5206;&#x7ec4;&#x7684;&#x6570;&#x636e;&#x53ef;&#x80fd;&#x91cd;&#x590d;&#xff0c;&#xa;&#x5e94;&#x4e3a;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x53ef;&#x80fd;&#x4e0d;&#x4e00;&#x6837;&#xff08;&#x5bfc;&#x5165;&#x4e4b;&#x540e;&#x4eba;&#x4e3a;&#x4fee;&#x6539;&#x7684;&#xff0c;&#x5982;&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6539;&#x6210;&#x533a;&#x95f4;&#xff09;&#xff0c;&#xa;&#x56e0;&#x4e3a;&#x5bfc;&#x51fa;&#x65f6;&#x5fc5;&#x987b;&#x6570;&#x636e;&#x4e0d;&#x91cd;&#x590d;&#xff0c;&#x8fd9;&#x91cc;&#x7684;&#x89e3;&#x51b3;&#x65b9;&#x6cd5;&#xff0c;&#x53ea;&#x4f7f;&#x7528;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;&#x5206;&#x7ec4;&#xff0c;&#xa;&#x4ee5;&#x540e;&#x5efa;&#x8bae;&#xff0c;&#x8fd8;&#x662f;&#x539f;&#x6765;&#x7684;&#x65b9;&#x5f0f;&#x5206;&#x7ec4;&#xff0c;&#x7136;&#x540e;&#x628a;&#x66f4;&#x65b0;&#x65f6;&#x95f4;&#x665a;&#x7684;&#x53bb;&#x9664;&#xa;&#xa;&#x4ee5;&#x540e;&#x6539;&#x6210;&#x53bb;&#x9664;&#x91cd;&#x590d;&#x7eaa;&#x5f55;</note>
94 - <xloc>37</xloc>  
95 - <yloc>309</yloc> 94 + <xloc>46</xloc>
  95 + <yloc>400</yloc>
96 <width>406</width> 96 <width>406</width>
97 <heigth>122</heigth> 97 <heigth>122</heigth>
98 <fontname>YaHei Consolas Hybrid</fontname> 98 <fontname>YaHei Consolas Hybrid</fontname>
@@ -368,6 +368,29 @@ @@ -368,6 +368,29 @@
368 </step> 368 </step>
369 369
370 <step> 370 <step>
  371 + <name>&#x53bb;&#x9664;&#x91cd;&#x590d;&#x8bb0;&#x5f55;</name>
  372 + <type>Unique</type>
  373 + <description/>
  374 + <distribute>Y</distribute>
  375 + <custom_distribution/>
  376 + <copies>1</copies>
  377 + <partitioning>
  378 + <method>none</method>
  379 + <schema_name/>
  380 + </partitioning>
  381 + <count_rows>N</count_rows>
  382 + <count_field/>
  383 + <reject_duplicate_row>N</reject_duplicate_row>
  384 + <error_description/>
  385 + <fields> </fields> <cluster_schema/>
  386 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  387 + <xloc>842</xloc>
  388 + <yloc>592</yloc>
  389 + <draw>Y</draw>
  390 + </GUI>
  391 + </step>
  392 +
  393 + <step>
371 <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name> 394 <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>
372 <type>SelectValues</type> 395 <type>SelectValues</type>
373 <description/> 396 <description/>
@@ -590,7 +613,7 @@ @@ -590,7 +613,7 @@
590 <optimizationLevel>9</optimizationLevel> 613 <optimizationLevel>9</optimizationLevel>
591 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> 614 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
592 <jsScript_name>Script 1</jsScript_name> 615 <jsScript_name>Script 1</jsScript_name>
593 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var fieldname&#x3b; &#x2f;&#x2f; &#x5b57;&#x6bb5;&#x540d;&#xa;var fieldtype&#x3b; &#x2f;&#x2f; &#x5b57;&#x6bb5;&#x7c7b;&#x578b;&#xa;&#xa;if &#x28;bc_type &#x3d;&#x3d; &#x27;in&#x27;&#x29; &#x7b;&#xa; fieldname &#x3d; &#x27;&#x8fdb;&#x573a;&#x27; &#x2b; fcno&#x3b;&#xa;&#x7d; else if &#x28;bc_type &#x3d;&#x3d; &#x27;out&#x27;&#x29; &#x7b;&#xa; fieldname &#x3d; &#x27;&#x51fa;&#x573a;&#x27; &#x2b; fcno&#x3b;&#xa;&#x7d; else if &#x28;bc_type &#x3d;&#x3d; &#x27;normal&#x27;&#x29; &#x7b;&#xa; fieldname &#x3d; zdname &#x2b; fcno&#x3b;&#xa;&#x7d; else &#x7b;&#xa; fieldname &#x3d; zdname &#x2b; fcno&#x3b;&#xa;&#x7d; &#xa;&#xa;fieldtype &#x3d; &#x27;String&#x27;&#x3b;&#xa;</jsScript_script> 616 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var fieldname&#x3b; &#x2f;&#x2f; &#x5b57;&#x6bb5;&#x540d;&#xa;var fieldtype&#x3b; &#x2f;&#x2f; &#x5b57;&#x6bb5;&#x7c7b;&#x578b;&#xa;&#xa;if &#x28;bc_type &#x3d;&#x3d; &#x27;in&#x27;&#x29; &#x7b;&#xa; fieldname &#x3d; &#x27;&#x8fdb;&#x573a;&#x27; &#x2b; &#x22;-&#x3e;&#x22; &#x2b; fcno&#x3b;&#xa;&#x7d; else if &#x28;bc_type &#x3d;&#x3d; &#x27;out&#x27;&#x29; &#x7b;&#xa; fieldname &#x3d; &#x27;&#x51fa;&#x573a;&#x27; &#x2b; &#x22;-&#x3e;&#x22; &#x2b; fcno&#x3b;&#xa;&#x7d; else if &#x28;bc_type &#x3d;&#x3d; &#x27;normal&#x27;&#x29; &#x7b;&#xa; fieldname &#x3d; zdname &#x2b; &#x22;-&#x3e;&#x22; &#x2b; fcno&#x3b;&#xa;&#x7d; else &#x7b;&#xa; fieldname &#x3d; zdname &#x2b; &#x22;-&#x3e;&#x22; &#x2b; fcno&#x3b;&#xa;&#x7d; &#xa;&#xa;fieldtype &#x3d; &#x27;String&#x27;&#x3b;&#xa;</jsScript_script>
594 </jsScript> </jsScripts> <fields> <field> <name>fieldname</name> 617 </jsScript> </jsScripts> <fields> <field> <name>fieldname</name>
595 <rename>fieldname</rename> 618 <rename>fieldname</rename>
596 <type>String</type> 619 <type>String</type>
@@ -626,7 +649,7 @@ @@ -626,7 +649,7 @@
626 <optimizationLevel>9</optimizationLevel> 649 <optimizationLevel>9</optimizationLevel>
627 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> 650 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
628 <jsScript_name>Script 1</jsScript_name> 651 <jsScript_name>Script 1</jsScript_name>
629 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var targetfieldname&#x3b; &#x2f;&#x2f; &#x76ee;&#x6807;&#x5b57;&#x6bb5;&#x540d;&#xa;var targettype&#x3b; &#x2f;&#x2f; &#x76ee;&#x6807;&#x7c7b;&#x578b;&#xa;var valuefieldname&#x3b; &#x2f;&#x2f; &#x503c;&#x5b57;&#x6bb5;&#x540d;&#xa;var keyvalue&#x3b; &#x2f;&#x2f; &#x5173;&#x952e;&#x5b57;&#x503c;&#xa;&#xa;if &#x28;bc_type &#x3d;&#x3d; &#x27;in&#x27;&#x29; &#x7b;&#xa; targetfieldname &#x3d; &#x27;&#x8fdb;&#x573a;&#x27; &#x2b; fcno&#x3b;&#xa;&#x7d; else if &#x28;bc_type &#x3d;&#x3d; &#x27;out&#x27;&#x29; &#x7b;&#xa; targetfieldname &#x3d; &#x27;&#x51fa;&#x573a;&#x27; &#x2b; fcno&#x3b;&#xa;&#x7d; else if &#x28;bc_type &#x3d;&#x3d; &#x27;normal&#x27;&#x29; &#x7b;&#xa; targetfieldname &#x3d; zdname &#x2b; fcno&#x3b;&#xa;&#x7d; else &#x7b;&#xa; targetfieldname &#x3d; zdname &#x2b; fcno&#x3b;&#xa;&#x7d; &#xa;&#xa;targettype &#x3d; &#x27;String&#x27;&#x3b;&#xa;valuefieldname &#x3d; &#x27;fcsj&#x27;&#x3b;&#xa;keyvalue &#x3d; fcno&#x3b;&#xa;</jsScript_script> 652 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var targetfieldname&#x3b; &#x2f;&#x2f; &#x76ee;&#x6807;&#x5b57;&#x6bb5;&#x540d;&#xa;var targettype&#x3b; &#x2f;&#x2f; &#x76ee;&#x6807;&#x7c7b;&#x578b;&#xa;var valuefieldname&#x3b; &#x2f;&#x2f; &#x503c;&#x5b57;&#x6bb5;&#x540d;&#xa;var keyvalue&#x3b; &#x2f;&#x2f; &#x5173;&#x952e;&#x5b57;&#x503c;&#xa;&#xa;if &#x28;bc_type &#x3d;&#x3d; &#x27;in&#x27;&#x29; &#x7b;&#xa; targetfieldname &#x3d; &#x27;&#x8fdb;&#x573a;&#x27; &#x2b; &#x22;-&#x3e;&#x22; &#x2b; fcno&#x3b;&#xa;&#x7d; else if &#x28;bc_type &#x3d;&#x3d; &#x27;out&#x27;&#x29; &#x7b;&#xa; targetfieldname &#x3d; &#x27;&#x51fa;&#x573a;&#x27; &#x2b; &#x22;-&#x3e;&#x22; &#x2b; fcno&#x3b;&#xa;&#x7d; else if &#x28;bc_type &#x3d;&#x3d; &#x27;normal&#x27;&#x29; &#x7b;&#xa; targetfieldname &#x3d; zdname &#x2b; &#x22;-&#x3e;&#x22; &#x2b; fcno&#x3b;&#xa;&#x7d; else &#x7b;&#xa; targetfieldname &#x3d; zdname &#x2b; &#x22;-&#x3e;&#x22; &#x2b; fcno&#x3b;&#xa;&#x7d; &#xa;&#xa;targettype &#x3d; &#x27;String&#x27;&#x3b;&#xa;valuefieldname &#x3d; &#x27;fcsj&#x27;&#x3b;&#xa;keyvalue &#x3d; fcno&#x3b;&#xa;</jsScript_script>
630 </jsScript> </jsScripts> <fields> <field> <name>targetfieldname</name> 653 </jsScript> </jsScripts> <fields> <field> <name>targetfieldname</name>
631 <rename>targetfieldname</rename> 654 <rename>targetfieldname</rename>
632 <type>String</type> 655 <type>String</type>
@@ -718,29 +741,6 @@ @@ -718,29 +741,6 @@
718 </GUI> 741 </GUI>
719 </step> 742 </step>
720 743
721 - <step>  
722 - <name>&#x53bb;&#x9664;&#x91cd;&#x590d;&#x8bb0;&#x5f55;</name>  
723 - <type>Unique</type>  
724 - <description/>  
725 - <distribute>Y</distribute>  
726 - <custom_distribution/>  
727 - <copies>1</copies>  
728 - <partitioning>  
729 - <method>none</method>  
730 - <schema_name/>  
731 - </partitioning>  
732 - <count_rows>N</count_rows>  
733 - <count_field/>  
734 - <reject_duplicate_row>N</reject_duplicate_row>  
735 - <error_description/>  
736 - <fields> </fields> <cluster_schema/>  
737 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
738 - <xloc>842</xloc>  
739 - <yloc>592</yloc>  
740 - <draw>Y</draw>  
741 - </GUI>  
742 - </step>  
743 -  
744 <step_error_handling> 744 <step_error_handling>
745 </step_error_handling> 745 </step_error_handling>
746 <slave-step-copy-partition-distribution> 746 <slave-step-copy-partition-distribution>
src/main/resources/static/pages/base/carpark/add.html
@@ -325,7 +325,7 @@ @@ -325,7 +325,7 @@
325 <a href="javascript:;" class="btn btn-outline green button-next"> 下一步 325 <a href="javascript:;" class="btn btn-outline green button-next"> 下一步
326 <i class="fa fa-angle-right"></i> 326 <i class="fa fa-angle-right"></i>
327 </a> 327 </a>
328 - <a href="javascript:;" class="btn green button-submit" style="display: none;"> 提交 328 + <a href="javascript:;" class="btn green button-submit" style="display: none;" id="submintBtn"> 提交
329 <i class="fa fa-check"></i> 329 <i class="fa fa-check"></i>
330 </a> 330 </a>
331 </div> 331 </div>
src/main/resources/static/pages/base/carpark/js/add-form-wizard.js
@@ -91,6 +91,8 @@ var FormWizard = function() { @@ -91,6 +91,8 @@ var FormWizard = function() {
91 * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form 91 * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form
92 */ 92 */
93 submitHandler : function(f) { 93 submitHandler : function(f) {
  94 + // 防止用户多次提交
  95 + $("#submintBtn").addClass("disabled");
94 // 表单序列化 96 // 表单序列化
95 var params = form.serializeJSON(); 97 var params = form.serializeJSON();
96 if(params.shapesType=='圆形') 98 if(params.shapesType=='圆形')
@@ -109,6 +111,7 @@ var FormWizard = function() { @@ -109,6 +111,7 @@ var FormWizard = function() {
109 // 返回list.html页面 111 // 返回list.html页面
110 loadPage('/pages/base/carpark/list.html'); 112 loadPage('/pages/base/carpark/list.html');
111 }); 113 });
  114 + $("#submintBtn").removeClass("disabled");
112 } 115 }
113 }); 116 });
114 $.validator.addMethod("alnum", function(value, element) { 117 $.validator.addMethod("alnum", function(value, element) {
src/main/resources/static/pages/base/company/add.html
@@ -89,7 +89,7 @@ @@ -89,7 +89,7 @@
89 <div class="form-actions"> 89 <div class="form-actions">
90 <div class="row"> 90 <div class="row">
91 <div class="col-md-offset-3 col-md-4"> 91 <div class="col-md-offset-3 col-md-4">
92 - <button type="submit" class="btn green" ><i class="fa fa-check"></i> 提交</button> 92 + <button type="submit" class="btn green" id="submintBtn"><i class="fa fa-check"></i> 提交</button>
93 <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a> 93 <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a>
94 </div> 94 </div>
95 </div> 95 </div>
src/main/resources/static/pages/base/company/js/comp-add-form.js
@@ -139,6 +139,8 @@ $(function(){ @@ -139,6 +139,8 @@ $(function(){
139 }); 139 });
140 // 提交 140 // 提交
141 function submit() { 141 function submit() {
  142 + // 防止用户多次提交
  143 + $("#submintBtn").addClass("disabled");
142 // 添加数据 144 // 添加数据
143 $post('/business', params, function(result) { 145 $post('/business', params, function(result) {
144 // 如果返回结果不为空 146 // 如果返回结果不为空
@@ -155,6 +157,7 @@ $(function(){ @@ -155,6 +157,7 @@ $(function(){
155 // 返回list.html页面 157 // 返回list.html页面
156 loadPage('list.html'); 158 loadPage('list.html');
157 }); 159 });
  160 + $("#submintBtn").removeClass("disabled");
158 } 161 }
159 } 162 }
160 }); 163 });
src/main/resources/static/pages/base/interval/add.html
@@ -80,7 +80,7 @@ @@ -80,7 +80,7 @@
80 <div class="form-actions"> 80 <div class="form-actions">
81 <div class="row"> 81 <div class="row">
82 <div class="col-md-offset-5 col-md-7"> 82 <div class="col-md-offset-5 col-md-7">
83 - <button type="submit" class="btn green" ><i class="fa fa-check"></i> 提交</button> 83 + <button type="submit" class="btn green" id="submintBtn"><i class="fa fa-check"></i> 提交</button>
84 <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a> 84 <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a>
85 </div> 85 </div>
86 </div> 86 </div>
src/main/resources/static/pages/base/interval/js/interval-add-form.js
@@ -108,6 +108,8 @@ $(function(){ @@ -108,6 +108,8 @@ $(function(){
108 submit(); 108 submit();
109 // 提交 109 // 提交
110 function submit() { 110 function submit() {
  111 + // 防止用户多次提交
  112 + $("#submintBtn").addClass("disabled");
111 // 添加数据 113 // 添加数据
112 $post('/interval', params, function(result) { 114 $post('/interval', params, function(result) {
113 // 如果返回结果不为空 115 // 如果返回结果不为空
@@ -125,6 +127,7 @@ $(function(){ @@ -125,6 +127,7 @@ $(function(){
125 //loadPage('list.html'); 127 //loadPage('list.html');
126 window.location.href = 'list.html'; 128 window.location.href = 'list.html';
127 }); 129 });
  130 + $("#submintBtn").removeClass("disabled");
128 } 131 }
129 } 132 }
130 }); 133 });
src/main/resources/static/pages/base/line/add.html
@@ -487,7 +487,7 @@ @@ -487,7 +487,7 @@
487 <div class="form-actions"> 487 <div class="form-actions">
488 <div class="row"> 488 <div class="row">
489 <div class="col-md-offset-5 col-md-7"> 489 <div class="col-md-offset-5 col-md-7">
490 - <button type="submit" class="btn green" ><i class="fa fa-check"></i> 提交</button> 490 + <button type="submit" class="btn green" id="submintBtn"><i class="fa fa-check"></i> 提交</button>
491 <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a> 491 <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a>
492 </div> 492 </div>
493 </div> 493 </div>
src/main/resources/static/pages/base/line/js/line-add-form.js
@@ -94,7 +94,7 @@ $(function(){ @@ -94,7 +94,7 @@ $(function(){
94 // 需要验证的表单元素 94 // 需要验证的表单元素
95 rules : { 95 rules : {
96 'name' : {required : true,maxlength: 30},// 线路名称 必填项、 最大长度. 96 'name' : {required : true,maxlength: 30},// 线路名称 必填项、 最大长度.
97 - 'lineCode' : {required : true,maxlength: 6,digits:true , 97 + 'lineCode' : {required : true,maxlength: 6,digits:true ,isLineCode:true,
98 remote:{type: 'GET', 98 remote:{type: 'GET',
99 url: '/line/lineCodeVerification', 99 url: '/line/lineCodeVerification',
100 cache:false, 100 cache:false,
@@ -237,6 +237,9 @@ $(function(){ @@ -237,6 +237,9 @@ $(function(){
237 // 提交 237 // 提交
238 function submit() { 238 function submit() {
239 239
  240 + // 防止用户多次提交
  241 + $("#submintBtn").addClass("disabled");
  242 +
240 // 添加数据 243 // 添加数据
241 $post('/line', params, function(result) { 244 $post('/line', params, function(result) {
242 // 如果返回结果不为空 245 // 如果返回结果不为空
@@ -262,7 +265,14 @@ $(function(){ @@ -262,7 +265,14 @@ $(function(){
262 } 265 }
263 } 266 }
264 }); 267 });
265 - 268 +
  269 + // 线路编码不能0开头
  270 + $.validator.addMethod("isLineCode", function(value,element) {
  271 + // 线路编码正则表达式
  272 + var lineCode = /^([1-9])/;
  273 + return lineCode.test(value);
  274 + }, "线路编码不能以0开头");
  275 +
266 // 联系电话(手机/电话皆可)验证 276 // 联系电话(手机/电话皆可)验证
267 $.validator.addMethod("isPhone", function(value,element) { 277 $.validator.addMethod("isPhone", function(value,element) {
268 // 长度 278 // 长度
src/main/resources/static/pages/base/lineinformation/add.html
@@ -583,7 +583,7 @@ @@ -583,7 +583,7 @@
583 <div class="form-actions"> 583 <div class="form-actions">
584 <div class="row"> 584 <div class="row">
585 <div class="col-md-offset-5 col-md-7"> 585 <div class="col-md-offset-5 col-md-7">
586 - <button type="submit" class="btn green" ><i class="fa fa-check"></i> 提交</button> 586 + <button type="submit" class="btn green" id="submintBtn"><i class="fa fa-check"></i> 提交</button>
587 <a type="button" class="btn default lineinformation_back" href="lineinformation.html" data-pjax><i class="fa fa-times"></i> 取消</a> 587 <a type="button" class="btn default lineinformation_back" href="lineinformation.html" data-pjax><i class="fa fa-times"></i> 取消</a>
588 </div> 588 </div>
589 </div> 589 </div>
src/main/resources/static/pages/base/lineinformation/js/lineinformation-add-form.js
@@ -198,11 +198,13 @@ $(function(){ @@ -198,11 +198,13 @@ $(function(){
198 error.hide(); 198 error.hide();
199 199
200 var params = form.serializeJSON(); 200 var params = form.serializeJSON();
  201 + // 防止用户多次提交
  202 + $("#submintBtn").addClass("disabled");
201 203
202 if (params.line) { 204 if (params.line) {
203 205
204 // 添加数据 206 // 添加数据
205 - $post('/lineInformation', params, function(result) { 207 + $post('/lineInformation1', params, function(result) {
206 208
207 // 如果返回结果不为空 209 // 如果返回结果不为空
208 if(result){ 210 if(result){
@@ -226,6 +228,7 @@ $(function(){ @@ -226,6 +228,7 @@ $(function(){
226 }); 228 });
227 229
228 } 230 }
  231 + $("#submintBtn").removeClass("disabled");
229 } 232 }
230 }); 233 });
231 234
src/main/resources/static/pages/base/lineversions/add.html
@@ -129,7 +129,7 @@ @@ -129,7 +129,7 @@
129 <div class="form-actions"> 129 <div class="form-actions">
130 <div class="row"> 130 <div class="row">
131 <div class="col-md-offset-5 col-md-7"> 131 <div class="col-md-offset-5 col-md-7">
132 - <button type="submit" class="btn green" ><i class="fa fa-check"></i> 提交</button> 132 + <button type="submit" class="btn green" id="submintBtn"><i class="fa fa-check"></i> 提交</button>
133 <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a> 133 <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a>
134 </div> 134 </div>
135 </div> 135 </div>
src/main/resources/static/pages/base/lineversions/js/lineversions-add-from.js
@@ -195,6 +195,8 @@ @@ -195,6 +195,8 @@
195 submit(); 195 submit();
196 // 提交 196 // 提交
197 function submit() { 197 function submit() {
  198 + // 防止用户多次提交
  199 + $("#submintBtn").addClass("disabled");
198 // 添加数据 200 // 添加数据
199 $post('/lineVersions/add', params, function(result) { 201 $post('/lineVersions/add', params, function(result) {
200 // 如果返回结果不为空 202 // 如果返回结果不为空
@@ -211,6 +213,7 @@ @@ -211,6 +213,7 @@
211 // 返回list.html页面 213 // 返回list.html页面
212 loadPage('list.html'); 214 loadPage('list.html');
213 }); 215 });
  216 + $("#submintBtn").removeClass("disabled");
214 } 217 }
215 } 218 }
216 }); 219 });
src/main/resources/static/pages/base/roadspeed/add.html
@@ -102,10 +102,10 @@ @@ -102,10 +102,10 @@
102 <div class="col-md-9"> 102 <div class="col-md-9">
103 <div class="icheck-list"> 103 <div class="icheck-list">
104 <label> 104 <label>
105 - <input type="radio" class="icheck" name="baseRes" value=0 > 系统生成 105 + <input type="radio" class="icheck" name="baseRes" value=0 checked> 系统生成
106 </label> 106 </label>
107 <label > 107 <label >
108 - <input type="radio" class="icheck" name="baseRes" value=1 checked> 手动添加 108 + <input type="radio" class="icheck" name="baseRes" value=1 > 手动添加
109 </label> 109 </label>
110 </div> 110 </div>
111 </div> 111 </div>
@@ -251,7 +251,7 @@ @@ -251,7 +251,7 @@
251 <a href="javascript:;" class="btn btn-outline green button-next"> 下一步 251 <a href="javascript:;" class="btn btn-outline green button-next"> 下一步
252 <i class="fa fa-angle-right"></i> 252 <i class="fa fa-angle-right"></i>
253 </a> 253 </a>
254 - <a href="javascript:;" class="btn green button-submit" style="display: none;"> 提交 254 + <a href="javascript:;" class="btn green button-submit" style="display: none;" id="submintBtn"> 提交
255 <i class="fa fa-check"></i> 255 <i class="fa fa-check"></i>
256 </a> 256 </a>
257 </div> 257 </div>
src/main/resources/static/pages/base/roadspeed/editroadspeed.html
@@ -155,7 +155,7 @@ $(&#39;#edit_roadspeed_mobal&#39;).on(&#39;editRoadspeedMobal_show&#39;, function(e, map_,ajaxd, @@ -155,7 +155,7 @@ $(&#39;#edit_roadspeed_mobal&#39;).on(&#39;editRoadspeedMobal_show&#39;, function(e, map_,ajaxd,
155 }, 155 },
156 submitHandler : function(f) { 156 submitHandler : function(f) {
157 var params = form.serializeJSON(); 157 var params = form.serializeJSON();
158 - params.bRoadVector = EditRoadspeedObj.getEitdRoadspeed().bRoadVector; 158 + params.bRoadVector = Roadspeed.bRoadVector;
159 error.hide(); 159 error.hide();
160 ajaxd.roadspeedUpdate(params,function(resuntDate) { 160 ajaxd.roadspeedUpdate(params,function(resuntDate) {
161 if(resuntDate.status=='SUCCESS') { 161 if(resuntDate.status=='SUCCESS') {
@@ -164,7 +164,6 @@ $(&#39;#edit_roadspeed_mobal&#39;).on(&#39;editRoadspeedMobal_show&#39;, function(e, map_,ajaxd, @@ -164,7 +164,6 @@ $(&#39;#edit_roadspeed_mobal&#39;).on(&#39;editRoadspeedMobal_show&#39;, function(e, map_,ajaxd,
164 }else { 164 }else {
165 // 弹出添加失败提示消息 165 // 弹出添加失败提示消息
166 layer.msg('修改失败...'); 166 layer.msg('修改失败...');
167 -  
168 } 167 }
169 $('#edit_roadspeed_mobal').modal('hide'); 168 $('#edit_roadspeed_mobal').modal('hide');
170 closeMobleSetClean(); 169 closeMobleSetClean();
src/main/resources/static/pages/base/roadspeed/js/add-form-wizard.js
@@ -76,6 +76,9 @@ var FormWizard = function() { @@ -76,6 +76,9 @@ var FormWizard = function() {
76 * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form. 76 * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form.
77 */ 77 */
78 submitHandler : function(f) { 78 submitHandler : function(f) {
  79 + // 防止用户多次提交
  80 + $("#submintBtn").addClass("disabled");
  81 + debugger
79 var params = form.serializeJSON();// 表单序列化. 82 var params = form.serializeJSON();// 表单序列化.
80 if(params.roadVector=='') { 83 if(params.roadVector=='') {
81 layer.msg('路段几何图形为空~请先在路段位置步骤中绘制出线路走向!'); 84 layer.msg('路段几何图形为空~请先在路段位置步骤中绘制出线路走向!');
@@ -90,6 +93,7 @@ var FormWizard = function() { @@ -90,6 +93,7 @@ var FormWizard = function() {
90 } 93 }
91 loadPage('list.html');// 返回list.html页面. 94 loadPage('list.html');// 返回list.html页面.
92 }); 95 });
  96 + $("#submintBtn").removeClass("disabled");
93 } 97 }
94 }); 98 });
95 99
@@ -146,8 +150,8 @@ var FormWizard = function() { @@ -146,8 +150,8 @@ var FormWizard = function() {
146 var stationStartValue = $('#stationStartInput').val(); 150 var stationStartValue = $('#stationStartInput').val();
147 var stationEndValue = $('#stationEndInput').val(); 151 var stationEndValue = $('#stationEndInput').val();
148 var paramsStationsArray = []; 152 var paramsStationsArray = [];
149 - paramsStationsArray[0] = stationStartValue+'公交车站';  
150 - paramsStationsArray[1]= stationEndValue+'公交车站'; 153 + paramsStationsArray[0] = stationStartValue;
  154 + paramsStationsArray[1]= stationEndValue;
151 $('#nameInput').val(stationStartValue + '至' + stationEndValue ); 155 $('#nameInput').val(stationStartValue + '至' + stationEndValue );
152 if(baseResValue == 0) { 156 if(baseResValue == 0) {
153 $('.leftUtils').hide(); 157 $('.leftUtils').hide();
@@ -161,8 +165,8 @@ var FormWizard = function() { @@ -161,8 +165,8 @@ var FormWizard = function() {
161 }); 165 });
162 }); 166 });
163 }else if(baseResValue ==1) { 167 }else if(baseResValue ==1) {
164 - SectionVmapWorlds.localSearchFromAdreesToPoint(stationStartValue+'公交车站');  
165 - SectionVmapWorlds.localSearchFromAdreesToPoint(stationEndValue+'公交车站'); 168 + SectionVmapWorlds.localSearchFromAdreesToPoint(stationStartValue);
  169 + SectionVmapWorlds.localSearchFromAdreesToPoint(stationEndValue);
166 // SectionVmapWorlds.drawingManagerOpen(); 170 // SectionVmapWorlds.drawingManagerOpen();
167 } 171 }
168 $('html,body').animate({scrollTop: ($('#form-wizard-info').offset().top-5) + "px"},500); 172 $('html,body').animate({scrollTop: ($('#form-wizard-info').offset().top-5) + "px"},500);
src/main/resources/static/pages/base/roadspeed/js/add-vmap-world.js
@@ -63,11 +63,11 @@ var SectionVmapWorlds = function() { @@ -63,11 +63,11 @@ var SectionVmapWorlds = function() {
63 marker.setAnimation(BMAP_ANIMATION_BOUNCE); 63 marker.setAnimation(BMAP_ANIMATION_BOUNCE);
64 }else { 64 }else {
65 // 弹出添加成功提示消息 65 // 弹出添加成功提示消息
66 - layer.msg('无法获取停车场【'+Address+'】地理位置!'); 66 + layer.msg('无法获取【'+Address+'】地理位置!');
67 } 67 }
68 }else { 68 }else {
69 // 弹出添加成功提示消息 69 // 弹出添加成功提示消息
70 - layer.msg('无法获取停车场【'+Address+'】地理位置!'); 70 + layer.msg('无法获取【'+Address+'】地理位置!');
71 } 71 }
72 }); 72 });
73 // 根据检索词发起检索。 73 // 根据检索词发起检索。
@@ -174,7 +174,7 @@ var SectionVmapWorlds = function() { @@ -174,7 +174,7 @@ var SectionVmapWorlds = function() {
174 var f = arguments.callee; 174 var f = arguments.callee;
175 var poiOne = new BMap.Point(stationsPoint[index].potion.lng,stationsPoint[index].potion.lat); 175 var poiOne = new BMap.Point(stationsPoint[index].potion.lng,stationsPoint[index].potion.lat);
176 var poiTwo = new BMap.Point(stationsPoint[index+1].potion.lng,stationsPoint[index+1].potion.lat); 176 var poiTwo = new BMap.Point(stationsPoint[index+1].potion.lng,stationsPoint[index+1].potion.lat);
177 - var transit = new BMap.DrivingRoute(mapB, {renderOptions: {map: mapB},onPolylinesSet: searchPolylinesSet}); 177 + var transit = new BMap.DrivingRoute(mapB, {renderOptions: {map: mapB,enableDragging : true},onPolylinesSet: searchPolylinesSet});
178 function searchPolylinesSet(results){ 178 function searchPolylinesSet(results){
179 if (transit.getStatus() != BMAP_STATUS_SUCCESS){ 179 if (transit.getStatus() != BMAP_STATUS_SUCCESS){
180 }else { 180 }else {
src/main/resources/static/pages/base/section/add.html
@@ -376,7 +376,7 @@ @@ -376,7 +376,7 @@
376 <a href="javascript:;" class="btn btn-outline green button-next"> 下一步 376 <a href="javascript:;" class="btn btn-outline green button-next"> 下一步
377 <i class="fa fa-angle-right"></i> 377 <i class="fa fa-angle-right"></i>
378 </a> 378 </a>
379 - <a href="javascript:;" class="btn green button-submit" style="display: none;"> 提交 379 + <a href="javascript:;" class="btn green button-submit" style="display: none;" id="submintBtn"> 提交
380 <i class="fa fa-check"></i> 380 <i class="fa fa-check"></i>
381 </a> 381 </a>
382 </div> 382 </div>
src/main/resources/static/pages/base/section/js/add-form-wizard.js
@@ -81,6 +81,8 @@ var FormWizard = function() { @@ -81,6 +81,8 @@ var FormWizard = function() {
81 * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form. 81 * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form.
82 */ 82 */
83 submitHandler : function(f) { 83 submitHandler : function(f) {
  84 + // 防止用户多次提交
  85 + $("#submintBtn").addClass("disabled");
84 var params = form.serializeJSON();// 表单序列化. 86 var params = form.serializeJSON();// 表单序列化.
85 if(params.bsectionVector=='') { 87 if(params.bsectionVector=='') {
86 layer.msg('路段几何图形为空~请先在路段位置步骤中绘制出线路走向!'); 88 layer.msg('路段几何图形为空~请先在路段位置步骤中绘制出线路走向!');
@@ -95,6 +97,7 @@ var FormWizard = function() { @@ -95,6 +97,7 @@ var FormWizard = function() {
95 } 97 }
96 loadPage('list.html');// 返回list.html页面. 98 loadPage('list.html');// 返回list.html页面.
97 }); 99 });
  100 + $("#submintBtn").removeClass("disabled");
98 } 101 }
99 }); 102 });
100 103
@@ -151,8 +154,8 @@ var FormWizard = function() { @@ -151,8 +154,8 @@ var FormWizard = function() {
151 var stationStartValue = $('#stationStartInput').val(); 154 var stationStartValue = $('#stationStartInput').val();
152 var stationEndValue = $('#stationEndInput').val(); 155 var stationEndValue = $('#stationEndInput').val();
153 var paramsStationsArray = []; 156 var paramsStationsArray = [];
154 - paramsStationsArray[0] = stationStartValue+'公交车站';  
155 - paramsStationsArray[1]= stationEndValue+'公交车站'; 157 + paramsStationsArray[0] = stationStartValue;
  158 + paramsStationsArray[1]= stationEndValue;
156 $('#sectionNameInput').val(stationStartValue + '至' + stationEndValue ); 159 $('#sectionNameInput').val(stationStartValue + '至' + stationEndValue );
157 if(baseResValue == 0) { 160 if(baseResValue == 0) {
158 $('.leftUtils').hide(); 161 $('.leftUtils').hide();
@@ -166,8 +169,8 @@ var FormWizard = function() { @@ -166,8 +169,8 @@ var FormWizard = function() {
166 }); 169 });
167 }); 170 });
168 }else if(baseResValue ==1) { 171 }else if(baseResValue ==1) {
169 - SectionVmapWorlds.localSearchFromAdreesToPoint(stationStartValue+'公交车站');  
170 - SectionVmapWorlds.localSearchFromAdreesToPoint(stationEndValue+'公交车站'); 172 + SectionVmapWorlds.localSearchFromAdreesToPoint(stationStartValue);
  173 + SectionVmapWorlds.localSearchFromAdreesToPoint(stationEndValue);
171 // SectionVmapWorlds.drawingManagerOpen(); 174 // SectionVmapWorlds.drawingManagerOpen();
172 } 175 }
173 $('html,body').animate({scrollTop: ($('#form-wizard-info').offset().top-5) + "px"},500); 176 $('html,body').animate({scrollTop: ($('#form-wizard-info').offset().top-5) + "px"},500);
src/main/resources/static/pages/base/section/js/add-vmap-world.js
@@ -63,11 +63,11 @@ var SectionVmapWorlds = function() { @@ -63,11 +63,11 @@ var SectionVmapWorlds = function() {
63 marker.setAnimation(BMAP_ANIMATION_BOUNCE); 63 marker.setAnimation(BMAP_ANIMATION_BOUNCE);
64 }else { 64 }else {
65 // 弹出添加成功提示消息 65 // 弹出添加成功提示消息
66 - layer.msg('无法获取停车场【'+Address+'】地理位置!'); 66 + layer.msg('无法获取【'+Address+'】地理位置!');
67 } 67 }
68 }else { 68 }else {
69 // 弹出添加成功提示消息 69 // 弹出添加成功提示消息
70 - layer.msg('无法获取停车场【'+Address+'】地理位置!'); 70 + layer.msg('无法获取【'+Address+'】地理位置!');
71 } 71 }
72 }); 72 });
73 // 根据检索词发起检索。 73 // 根据检索词发起检索。
@@ -174,7 +174,7 @@ var SectionVmapWorlds = function() { @@ -174,7 +174,7 @@ var SectionVmapWorlds = function() {
174 var f = arguments.callee; 174 var f = arguments.callee;
175 var poiOne = new BMap.Point(stationsPoint[index].potion.lng,stationsPoint[index].potion.lat); 175 var poiOne = new BMap.Point(stationsPoint[index].potion.lng,stationsPoint[index].potion.lat);
176 var poiTwo = new BMap.Point(stationsPoint[index+1].potion.lng,stationsPoint[index+1].potion.lat); 176 var poiTwo = new BMap.Point(stationsPoint[index+1].potion.lng,stationsPoint[index+1].potion.lat);
177 - var transit = new BMap.DrivingRoute(mapB, {renderOptions: {map: mapB},onPolylinesSet: searchPolylinesSet}); 177 + var transit = new BMap.DrivingRoute(mapB, {renderOptions: {map: mapB,enableDragging : true},onPolylinesSet: searchPolylinesSet});
178 function searchPolylinesSet(results){ 178 function searchPolylinesSet(results){
179 if (transit.getStatus() != BMAP_STATUS_SUCCESS){ 179 if (transit.getStatus() != BMAP_STATUS_SUCCESS){
180 }else { 180 }else {
src/main/resources/static/pages/base/station/add.html
@@ -425,7 +425,7 @@ @@ -425,7 +425,7 @@
425 <a href="javascript:;" class="btn btn-outline green button-next"> 下一步 425 <a href="javascript:;" class="btn btn-outline green button-next"> 下一步
426 <i class="fa fa-angle-right"></i> 426 <i class="fa fa-angle-right"></i>
427 </a> 427 </a>
428 - <a href="javascript:;" class="btn green button-submit" style="display: none;"> 提交 428 + <a href="javascript:;" class="btn green button-submit" style="display: none;" id="submintBtn"> 提交
429 <i class="fa fa-check"></i> 429 <i class="fa fa-check"></i>
430 </a> 430 </a>
431 </div> 431 </div>
src/main/resources/static/pages/base/station/js/add-form-wizard.js
@@ -90,6 +90,8 @@ var FormWizard = function() { @@ -90,6 +90,8 @@ var FormWizard = function() {
90 * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form 90 * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form
91 */ 91 */
92 submitHandler : function(f) { 92 submitHandler : function(f) {
  93 + // 防止用户多次提交
  94 + $("#submintBtn").addClass("disabled");
93 // 表单序列化 95 // 表单序列化
94 var params = form.serializeJSON(); 96 var params = form.serializeJSON();
95 if(params.shapesType=='圆形') 97 if(params.shapesType=='圆形')
@@ -108,6 +110,7 @@ var FormWizard = function() { @@ -108,6 +110,7 @@ var FormWizard = function() {
108 // 返回list.html页面 110 // 返回list.html页面
109 loadPage('list.html'); 111 loadPage('list.html');
110 }); 112 });
  113 + $("#submintBtn").removeClass("disabled");
111 } 114 }
112 }); 115 });
113 // 当站点类型为中途站或者终点站时,上一站点为必填项! 116 // 当站点类型为中途站或者终点站时,上一站点为必填项!
src/main/resources/static/pages/electricity/list/add.html
@@ -387,22 +387,35 @@ @@ -387,22 +387,35 @@
387 var date=$("#date").val(); 387 var date=$("#date").val();
388 var jsy=$("#jsy").val(); 388 var jsy=$("#jsy").val();
389 var xlbm=$("#xlbm").val(); 389 var xlbm=$("#xlbm").val();
  390 + var gsdm=$("#ssgsdm").val();
390 var map={}; 391 var map={};
391 map["nbbm"]=nbbm; 392 map["nbbm"]=nbbm;
392 map["date"]=date; 393 map["date"]=date;
393 map["jsy"]=jsy; 394 map["jsy"]=jsy;
394 map["xlbm"]=xlbm; 395 map["xlbm"]=xlbm;
  396 + map["rq"]=date;
  397 + map["ssgsdm_like"]=gsdm;
395 //检查一下用户是否存在 398 //检查一下用户是否存在
396 - $get('/dlb/checkJsy', map, function(fage){  
397 - if(fage=="0"){  
398 - layer.msg('该驾驶员当天已存在.'); 399 + var i = layer.load(2);
  400 + $get('/ylb/checkDate', map, function(fage){
  401 + if(fage=="2"){
  402 + layer.msg('只能操作三天内数据.');
  403 + layer.close(i);
399 }else{ 404 }else{
400 - $post('/dlb/saveDlb', params, function(){  
401 - layer.msg('添加信息成功.');  
402 - loadPage('list.html'); 405 + $get('/dlb/checkJsy', map, function(fage){
  406 + if(fage=="0"){
  407 + layer.msg('该驾驶员当天已存在.');
  408 + layer.close(i);
  409 + }else{
  410 + $post('/dlb/saveDlb', params, function(){
  411 + layer.close(i);
  412 + layer.msg('添加信息成功.');
  413 + loadPage('list.html');
  414 + });
  415 + }
403 }); 416 });
404 } 417 }
405 - }); 418 + })
406 } 419 }
407 }); 420 });
408 }); 421 });
src/main/resources/static/pages/electricity/list/list.html
@@ -271,12 +271,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -271,12 +271,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
271 271
272 $("#checkDl").on('click', function () { 272 $("#checkDl").on('click', function () {
273 if ($("#rq").val() != "") { 273 if ($("#rq").val() != "") {
274 - var params=getParamsList();  
275 - var i = layer.load(2);  
276 - $get('/dlb/checkDl', params, function () {  
277 - layer.close(i);  
278 - jsDoQuery(params, true);  
279 - }); 274 + var params=getParamsList();
  275 + $get('/ylb/checkDate',params,function(status){
  276 + if(status=='2'){
  277 + layer.msg('只能操作三天内数据.');
  278 + }else{
  279 + var i = layer.load(2);
  280 + $get('/dlb/checkDl', params, function () {
  281 + layer.close(i);
  282 + jsDoQuery(params, true);
  283 + });
  284 + }
  285 + })
280 } else { 286 } else {
281 layer.msg('请选择日期.'); 287 layer.msg('请选择日期.');
282 } 288 }
@@ -286,12 +292,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -286,12 +292,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
286 $("#outAndIn").on('click', function () { 292 $("#outAndIn").on('click', function () {
287 console.log("进场油量等于出场油量"); 293 console.log("进场油量等于出场油量");
288 if ($("#rq").val() != "") { 294 if ($("#rq").val() != "") {
289 - var params=getParamsList();  
290 - var i = layer.load(2);  
291 - $get('/ylb/outAndIn', params, function () {  
292 - layer.close(i);  
293 - jsDoQuery(params, true);  
294 - }); 295 + var params=getParamsList();
  296 + $get('/ylb/checkDate',params,function(status){
  297 + if(status=='2'){
  298 + layer.msg('只能操作三天内数据.');
  299 + }else{
  300 + var i = layer.load(2);
  301 + $get('/ylb/outAndIn', params, function () {
  302 + layer.close(i);
  303 + jsDoQuery(params, true);
  304 + });
  305 + }
  306 + })
295 } else { 307 } else {
296 layer.msg('请选择日期.'); 308 layer.msg('请选择日期.');
297 } 309 }
@@ -300,56 +312,63 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -300,56 +312,63 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
300 312
301 //保存 313 //保存
302 $("#saveButton").on('click',function(){ 314 $("#saveButton").on('click',function(){
303 - var ylArray = [];  
304 - $('input.icheck').each(function(){  
305 - var map = {};  
306 - var id=$(this).data('id');  
307 - var nbbm =$('.in_carpark_nbbm[data-id='+id+']', '#dl_oil_list').html();  
308 - var cdl =$('.in_carpark_cdl[data-id='+id+']', '#dl_oil_list').html();  
309 - if(cdl=="" || cdl ==null){  
310 - cdl=0;  
311 - }  
312 - var czcd=$('.in_carpark_czcd[data-id='+id+']', '#dl_oil_list').val();  
313 - if(czcd=="" || czcd==null){  
314 - czcd=0;  
315 - }  
316 - var jzcd=$('.in_carpark_jzcd[data-id='+id+']', '#dl_oil_list').val();  
317 - if(jzcd=="" || jzcd==null){  
318 - jzcd=0;  
319 - }  
320 -  
321 - var sh = $('.in_carpark_shyl[data-id='+id+']', '#dl_oil_list').val();  
322 - if(sh=="" || sh==null){  
323 - sh=0;  
324 - }  
325 -  
326 - var shyy = $('.in_carpark_shyy[data-id='+id+']', '#dl_oil_list').val();  
327 - var hd = $('.in_carpark_hd[data-id='+id+']', '#dl_oil_list').val();  
328 - if(hd=="" || hd==null){  
329 - hd=0;  
330 - }  
331 - var yhlx = $('.in_carpark_yhlx[data-id='+id+']', '#dl_oil_list').val();  
332 -  
333 - map['id']=id;  
334 - map['cdl']=cdl;  
335 - map['czcd']=czcd;  
336 - map['jzcd']=jzcd;  
337 - map['sh']=sh;  
338 - map['shyy']=shyy;  
339 - map['yhlx']=yhlx;  
340 - map['nbbm']=nbbm;  
341 - map['hd']=hd;  
342 - map['rq']=$("#rq").val();  
343 - ylArray.push(map); 315 + var params_=getParamsList();
  316 + $get('/ylb/checkDate',params_,function(status){
  317 + if(status=='2'){
  318 + layer.msg('只能操作三天内数据.');
  319 + }else{
  320 + var ylArray = [];
  321 + $('input.icheck').each(function(){
  322 + var map = {};
  323 + var id=$(this).data('id');
  324 + var nbbm =$('.in_carpark_nbbm[data-id='+id+']', '#dl_oil_list').html();
  325 + var cdl =$('.in_carpark_cdl[data-id='+id+']', '#dl_oil_list').html();
  326 + if(cdl=="" || cdl ==null){
  327 + cdl=0;
  328 + }
  329 + var czcd=$('.in_carpark_czcd[data-id='+id+']', '#dl_oil_list').val();
  330 + if(czcd=="" || czcd==null){
  331 + czcd=0;
  332 + }
  333 + var jzcd=$('.in_carpark_jzcd[data-id='+id+']', '#dl_oil_list').val();
  334 + if(jzcd=="" || jzcd==null){
  335 + jzcd=0;
  336 + }
  337 +
  338 + var sh = $('.in_carpark_shyl[data-id='+id+']', '#dl_oil_list').val();
  339 + if(sh=="" || sh==null){
  340 + sh=0;
  341 + }
  342 +
  343 + var shyy = $('.in_carpark_shyy[data-id='+id+']', '#dl_oil_list').val();
  344 + var hd = $('.in_carpark_hd[data-id='+id+']', '#dl_oil_list').val();
  345 + if(hd=="" || hd==null){
  346 + hd=0;
  347 + }
  348 + var yhlx = $('.in_carpark_yhlx[data-id='+id+']', '#dl_oil_list').val();
  349 +
  350 + map['id']=id;
  351 + map['cdl']=cdl;
  352 + map['czcd']=czcd;
  353 + map['jzcd']=jzcd;
  354 + map['sh']=sh;
  355 + map['shyy']=shyy;
  356 + map['yhlx']=yhlx;
  357 + map['nbbm']=nbbm;
  358 + map['hd']=hd;
  359 + map['rq']=$("#rq").val();
  360 + ylArray.push(map);
  361 + })
  362 + var params = {};
  363 + params['dlbList']=JSON.stringify(ylArray);
  364 + var i = layer.load(2);
  365 + $post('/dlb/saveDlbList', params, function () {
  366 + layer.close(i);
  367 + var params1 =getParamsList();
  368 + jsDoQuery(params1, true);
  369 + });
  370 + }
344 }) 371 })
345 - var params = {};  
346 - params['dlbList']=JSON.stringify(ylArray);  
347 - var i = layer.load(2);  
348 - $post('/dlb/saveDlbList', params, function () {  
349 - layer.close(i);  
350 - var params1 =getParamsList();  
351 - jsDoQuery(params1, true);  
352 - });  
353 }) 372 })
354 //拆分 373 //拆分
355 $("#sortButton").on('click', function () { 374 $("#sortButton").on('click', function () {
@@ -405,13 +424,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -405,13 +424,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
405 //获取加存信息 424 //获取加存信息
406 $("#obtain").on('click', function () { 425 $("#obtain").on('click', function () {
407 if ($("#rq").val() != "") { 426 if ($("#rq").val() != "") {
408 - var params =getParamsList();  
409 -  
410 - var i = layer.load(2);  
411 - $get('/dlb/obtain', params, function () {  
412 - layer.close(i);  
413 - jsDoQuery(params, true);  
414 - }); 427 + var params=getParamsList();
  428 + $get('/ylb/checkDate',params,function(status){
  429 + if(status=='2'){
  430 + layer.msg('只能操作三天内数据.');
  431 + }else{
  432 + var i = layer.load(2);
  433 + $get('/dlb/obtain', params, function () {
  434 + layer.close(i);
  435 + jsDoQuery(params, true);
  436 + });
  437 + }
  438 + })
415 } else { 439 } else {
416 layer.msg('请选择日期.'); 440 layer.msg('请选择日期.');
417 } 441 }
@@ -563,15 +587,20 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -563,15 +587,20 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
563 } 587 }
564 588
565 function jsyUpdate(){ 589 function jsyUpdate(){
566 - var id = $(this).data('id');  
567 - var jsy=$('.in_carpark_jsy[data-id='+id+']', '#dl_oil_list').val();  
568 - $get('/dlb/updateJsy',{id:id,jsy:jsy}, function(result){  
569 - layer.msg('修改成功.');  
570 - var params = getParamsList();  
571 - page = 0;  
572 - jsDoQuery(params, true);  
573 - });  
574 - 590 + var params=getParamsList();
  591 + $get('/ylb/checkDate',params,function(status){
  592 + if(status=='2'){
  593 + layer.msg('只能操作三天内数据.');
  594 + }else{
  595 + var id = $(this).data('id');
  596 + var jsy=$('.in_carpark_jsy[data-id='+id+']', '#dl_oil_list').val();
  597 + $get('/dlb/updateJsy',{id:id,jsy:jsy}, function(result){
  598 + layer.msg('修改成功.');
  599 + page = 0;
  600 + jsDoQuery(params, true);
  601 + });
  602 + }
  603 + })
575 } 604 }
576 //页面计算防止精度丢失 605 //页面计算防止精度丢失
577 var accAdd = function (a, b) { 606 var accAdd = function (a, b) {
@@ -702,31 +731,38 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -702,31 +731,38 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
702 731
703 //删除 732 //删除
704 $('#removeButton').on('click', function () { 733 $('#removeButton').on('click', function () {
705 - var idArray = [];  
706 - var x=0;  
707 - $('input.icheck:checked').each(function(){  
708 - x++;  
709 - var map ={};  
710 - var id=$(this).data('id');  
711 - map['id']=id;  
712 - idArray.push(map);  
713 - 734 + var params_=getParamsList();
  735 + $get('/ylb/checkDate',params_,function(status){
  736 + if(status=='2'){
  737 + layer.msg('只能操作三天内数据.');
  738 + }else{
  739 + var idArray = [];
  740 + var x=0;
  741 + $('input.icheck:checked').each(function(){
  742 + x++;
  743 + var map ={};
  744 + var id=$(this).data('id');
  745 + map['id']=id;
  746 + idArray.push(map);
  747 +
  748 + })
  749 + var params = {};
  750 + params['ids']=JSON.stringify(idArray);
  751 + if (x==0) {
  752 + layer.msg("请选择要删除的数据");
  753 + }else{
  754 + if(confirm('确定要删除选中的数据?'))
  755 + {
  756 + var i = layer.load(2);
  757 + $post('/dlb/deleteIds', params, function (result) {
  758 + layer.close(i);
  759 + var params=getParamsList();
  760 + jsDoQuery(params, true);
  761 + });
  762 + }
  763 + }
  764 + }
714 }) 765 })
715 - var params = {};  
716 - params['ids']=JSON.stringify(idArray);  
717 - if (x==0) {  
718 - layer.msg("请选择要删除的数据");  
719 - }else{  
720 - if(confirm('确定要删除选中的数据?'))  
721 - {  
722 - var i = layer.load(2);  
723 - $post('/dlb/deleteIds', params, function (result) {  
724 - layer.close(i);  
725 - var params=getParamsList();  
726 - jsDoQuery(params, true);  
727 - });  
728 - }  
729 - }  
730 }); 766 });
731 767
732 768
src/main/resources/static/pages/forms/statement/firstAndLastBus_delay.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid;
  11 + text-align: center; }
  12 + .table-bordered > thead > tr > th,
  13 + .table-bordered > thead > tr > td {
  14 + border-bottom-width: 2px; }
  15 +
  16 + .table > tbody + tbody {
  17 + border-top: 1px solid; }
  18 +</style>
  19 +
  20 +<div class="page-head">
  21 + <div class="page-title">
  22 + <h1>线路首末班准点率</h1>
  23 + </div>
  24 +</div>
  25 +
  26 +<div class="row">
  27 + <div class="col-md-12">
  28 + <div class="portlet light porttlet-fit bordered">
  29 + <div class="portlet-title">
  30 + <form id="history" class="form-inline" action="">
  31 + <div style="display: inline-block;margin-left: 28px;" id="company1">
  32 + <span class="item-label" style="width: 80px;">公司: </span>
  33 + <select class="form-control" name="company" id="company" style="width: 160px;"></select>
  34 + </div>
  35 + <div style="display: inline-block;margin-left: 24px;" id="subCompany1">
  36 + <span class="item-label" style="width: 80px;">分公司: </span>
  37 + <select class="form-control" name="subCompany" id="subCompany" style="width: 160px;"></select>
  38 + </div>
  39 + <div style="display: inline-block;margin-left: 10px;">
  40 + <span class="item-label" style="width: 80px;">线路: </span>
  41 + <select class="form-control" name="line" id="line" style="width: 160px;"></select>
  42 + </div>
  43 + <div style="margin-top: 10px"></div>
  44 + <div style="display: inline-block;margin-left: 0px;">
  45 + <span class="item-label" style="width: 80px;">开始时间: </span>
  46 + <input class="form-control" type="text" id="startDate" style="width: 160px;"/>
  47 + </div>
  48 + <div style="display: inline-block;margin-left: 10px;">
  49 + <span class="item-label" style="width: 80px;">结束时间: </span>
  50 + <input class="form-control" type="text" id="endDate" style="width: 160px;"/>
  51 + </div>
  52 + <div class="form-group" style="margin-left: 10px;">
  53 + <input class="btn btn-default" type="button" id="query" value="筛选"/>
  54 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  55 + </div>
  56 + </form>
  57 + </div>
  58 + <div class="portlet-body">
  59 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  60 + <table class="table table-bordered table-hover table-checkable" id="forms">
  61 + <thead>
  62 + <tr class="hidden">
  63 + <th align="center">序号</th>
  64 + <th>日期</th>
  65 + <th>分公司</th>
  66 + <th>线路</th>
  67 + <th>首末班次</th>
  68 + <th>计发</th>
  69 + <th>实发</th>
  70 + <th>误差</th>
  71 + <th>调度路单备注</th>
  72 + </tr>
  73 + </thead>
  74 + <tbody>
  75 +
  76 + </tbody>
  77 + </table>
  78 + </div>
  79 + </div>
  80 + </div>
  81 + </div>
  82 +</div>
  83 +
  84 +<script type="text/javascript" src="js/jquery.table2excel.min.js"></script>
  85 +<script>
  86 + $(function(){
  87 + $('#export').attr('disabled', "true");
  88 +
  89 + // 关闭左侧栏
  90 + if (!$('body').hasClass('page-sidebar-closed'))
  91 + $('.menu-toggler.sidebar-toggler').click();
  92 +
  93 +
  94 + var d = new Date();
  95 + d.setTime(d.getTime() - 1*1000*60*60*24);
  96 + var year = d.getFullYear();
  97 + var month = d.getMonth() + 1;
  98 + var day = d.getDate();
  99 + if(month < 10)
  100 + month = "0" + month;
  101 + if(day < 10)
  102 + day = "0" + day;
  103 + var dateTime = year + "-" + month + "-" + day;
  104 + $("#startDate,#endDate").datetimepicker({
  105 + format : 'YYYY-MM-DD',
  106 + locale : 'zh-cn',
  107 + maxDate : dateTime
  108 + });
  109 + $("#startDate,#endDate").val(dateTime);
  110 +
  111 + var fage=false;
  112 + var xlList;
  113 + var obj = [];
  114 +
  115 + $.get('/report/lineList',function(result){
  116 + xlList=result;
  117 + $.get('/user/companyData', function(result){
  118 + obj = result;
  119 + var options = '';
  120 + for(var i = 0; i < obj.length; i++){
  121 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  122 + }
  123 +
  124 + if(obj.length ==0){
  125 + $("#company1").css('display','none');
  126 + }else if(obj.length ==1){
  127 + $("#company1").css('display','none');
  128 + if(obj[0].children.length == 1 || obj[0].children.length ==0)
  129 + $('#subCompany1').css('display','none');
  130 + }
  131 + $('#company').html(options);
  132 + updateCompany();
  133 + });
  134 + })
  135 + $("#company").on("change",updateCompany);
  136 + function updateCompany(){
  137 + var company = $('#company').val();
  138 + var options = '';
  139 + for(var i = 0; i < obj.length; i++){
  140 + if(obj[i].companyCode == company){
  141 + var children = obj[i].children;
  142 + for(var j = 0; j < children.length; j++){
  143 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  144 + }
  145 + }
  146 + }
  147 + $('#subCompany').html(options);
  148 + }
  149 +
  150 + var tempData = {};
  151 + $.get('/report/lineList',function(xlList){
  152 + var data = [];
  153 + data.push({id: " ", text: "全部线路"});
  154 + $.get('/user/companyData', function(result){
  155 + for(var i = 0; i < result.length; i++){
  156 + var companyCode = result[i].companyCode;
  157 + var children = result[i].children;
  158 + for(var j = 0; j < children.length; j++){
  159 + var code = children[j].code;
  160 + for(var k=0;k < xlList.length;k++ ){
  161 + if(xlList[k]["fgsbm"]==code && xlList[k]["gsbm"]==companyCode){
  162 + data.push({id: xlList[k]["xlbm"], text: xlList[k]["xlname"]});
  163 + tempData[xlList[k]["xlbm"]] = companyCode+":"+code;
  164 + }
  165 + }
  166 + }
  167 + }
  168 + initPinYinSelect2('#line',data,'');
  169 +
  170 + });
  171 + });
  172 +
  173 + $("#line").on("change", function(){
  174 + if($("#line").val() == " "){
  175 + $("#company").attr("disabled", false);
  176 + $("#subCompany").attr("disabled", false);
  177 + } else {
  178 + var temp = tempData[$("#line").val()].split(":");
  179 + $("#company").val(temp[0]);
  180 + updateCompany();
  181 + $("#subCompany").val(temp[1]);
  182 + $("#company").attr("disabled", true);
  183 + $("#subCompany").attr("disabled", true);
  184 + }
  185 + });
  186 +
  187 + $("#query").on("click",jsDoQuery);
  188 +
  189 + var company = $("#company").val();
  190 + var subCompany = $("#subCompany").val();
  191 + var line = $("#line").val();
  192 + var startDate = $("#startDate").val();
  193 + var endDate = $("#endDate").val();
  194 + function jsDoQuery(pagination){
  195 + if($("#startDate").val() == null || $("#startDate").val().trim().length == 0){
  196 + layer.msg("请选择时间!");
  197 + return;
  198 + }
  199 + if($("#endDate").val() == null || $("#endDate").val().trim().length == 0){
  200 + layer.msg("请选择时间!");
  201 + return;
  202 + }
  203 + var i = layer.load(2);
  204 + var params = {};
  205 + company = $("#company").val();
  206 + subCompany = $("#subCompany").val();
  207 + line = $("#line").val();
  208 + startDate = $("#startDate").val();
  209 + endDate = $("#endDate").val();
  210 + if(line == " ")
  211 + line = "";
  212 + params['company'] = company;
  213 + params['subCompany'] = subCompany;
  214 + params['line'] = line;
  215 + params['startDate'] = startDate;
  216 + params['endDate'] = endDate;
  217 + params['type'] = "query";
  218 + $("#forms .hidden").removeClass("hidden");
  219 + $("#map tr").addClass("hidden");
  220 + $("#sumMap tr").addClass("hidden");
  221 + $get('/pcpc/firstAndLastBus_sum', params, function(result){
  222 + // 把数据填充到模版中
  223 + var tbodyHtml = template('list_firstAndLastBus_delay',{list:result[result.length - 1].map});
  224 + // 把渲染好的模版html文本追加到表格中
  225 + $('#forms tbody').html(tbodyHtml);
  226 +
  227 + if(result.length == 0)
  228 + $("#export").attr('disabled',"true");
  229 + else
  230 + $("#export").removeAttr("disabled");
  231 +
  232 + layer.close(i);
  233 + });
  234 + }
  235 +
  236 + $("#export").on("click",function(){
  237 + $("#forms").table2excel({
  238 + exclue: ".noExl",
  239 + name: "Excel Document Name.xlsx",
  240 + filename: "首末班误点班次",
  241 + exclude_img: true,
  242 + exclude_links: true,
  243 + exclude_inputs: true
  244 + });
  245 + });
  246 +
  247 +
  248 + });
  249 +
  250 +</script>
  251 +<script type="text/html" id="list_firstAndLastBus_delay">
  252 + {{each list as obj i}}
  253 + <tr>
  254 + <td>{{obj.no}}</td>
  255 + <td>{{obj.date}}</td>
  256 + <td>{{obj.subCompany}}</td>
  257 + <td>{{obj.line}}</td>
  258 + <td>{{obj.firstOrLast}}</td>
  259 + <td>{{obj.jhfc}}</td>
  260 + <td>{{obj.sjfc}}</td>
  261 + <td> {{obj.delay}}</td>
  262 + <td>{{obj.remarks1}}</td>
  263 + </tr>
  264 + {{/each}}
  265 +</script>
0 \ No newline at end of file 266 \ No newline at end of file
src/main/resources/static/pages/forms/statement/firstAndLastBus_sum.html
@@ -75,11 +75,11 @@ @@ -75,11 +75,11 @@
75 </table> 75 </table>
76 </div> 76 </div>
77 <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> 77 <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  78 + <input class="btn btn-default hidden" type="button" id="exportMap" value="导出明细" style="float: right;"/>
78 <table class="table table-bordered table-hover table-checkable" id="map"> 79 <table class="table table-bordered table-hover table-checkable" id="map">
79 <thead> 80 <thead>
80 <tr class="hidden"> 81 <tr class="hidden">
81 - <th style="display: none;"></th>  
82 - <th rowspan="2">日期</th> 82 + <th rowspan="2" align="center">日期</th>
83 <th rowspan="2">线路</th> 83 <th rowspan="2">线路</th>
84 <th colspan="4">上行首发</th> 84 <th colspan="4">上行首发</th>
85 <th colspan="4">上行末发</th> 85 <th colspan="4">上行末发</th>
@@ -87,8 +87,7 @@ @@ -87,8 +87,7 @@
87 <th colspan="4">下行末发</th> 87 <th colspan="4">下行末发</th>
88 </tr> 88 </tr>
89 <tr class="hidden"> 89 <tr class="hidden">
90 - <th style="display: none;"></th>  
91 - <th>站点</th> 90 + <th align="center">站点</th>
92 <th>计发</th> 91 <th>计发</th>
93 <th>实发</th> 92 <th>实发</th>
94 <th>快慢</th> 93 <th>快慢</th>
@@ -110,12 +109,33 @@ @@ -110,12 +109,33 @@
110 109
111 </tbody> 110 </tbody>
112 </table> 111 </table>
  112 +
  113 + <input class="btn btn-default hidden" type="button" id="exportSumMap" value="导出明细" style="float: right;"/>
  114 + <table class="table table-bordered table-hover table-checkable" id="sumMap">
  115 + <thead>
  116 + <tr class="hidden">
  117 + <th align="center">序号</th>
  118 + <th>日期</th>
  119 + <th>分公司</th>
  120 + <th>线路</th>
  121 + <th>首末班次</th>
  122 + <th>计发</th>
  123 + <th>实发</th>
  124 + <th>误差</th>
  125 + <th>调度路单备注</th>
  126 + </tr>
  127 + </thead>
  128 + <tbody>
  129 +
  130 + </tbody>
  131 + </table>
113 </div> 132 </div>
114 </div> 133 </div>
115 </div> 134 </div>
116 </div> 135 </div>
117 </div> 136 </div>
118 137
  138 +<script type="text/javascript" src="js/jquery.table2excel.min.js"></script>
119 <script> 139 <script>
120 $(function(){ 140 $(function(){
121 $('#export').attr('disabled', "true"); 141 $('#export').attr('disabled', "true");
@@ -124,12 +144,9 @@ @@ -124,12 +144,9 @@
124 if (!$('body').hasClass('page-sidebar-closed')) 144 if (!$('body').hasClass('page-sidebar-closed'))
125 $('.menu-toggler.sidebar-toggler').click(); 145 $('.menu-toggler.sidebar-toggler').click();
126 146
127 - $("#startDate,#endDate").datetimepicker({  
128 - format : 'YYYY-MM-DD',  
129 - locale : 'zh-cn'  
130 - });  
131 147
132 var d = new Date(); 148 var d = new Date();
  149 + d.setTime(d.getTime() - 1*1000*60*60*24);
133 var year = d.getFullYear(); 150 var year = d.getFullYear();
134 var month = d.getMonth() + 1; 151 var month = d.getMonth() + 1;
135 var day = d.getDate(); 152 var day = d.getDate();
@@ -137,7 +154,13 @@ @@ -137,7 +154,13 @@
137 month = "0" + month; 154 month = "0" + month;
138 if(day < 10) 155 if(day < 10)
139 day = "0" + day; 156 day = "0" + day;
140 - $("#startDate,#endDate").val(year + "-" + month + "-" + day); 157 + var dateTime = year + "-" + month + "-" + day;
  158 + $("#startDate,#endDate").datetimepicker({
  159 + format : 'YYYY-MM-DD',
  160 + locale : 'zh-cn',
  161 + maxDate : dateTime
  162 + });
  163 + $("#startDate,#endDate").val(dateTime);
141 164
142 var fage=false; 165 var fage=false;
143 var xlList; 166 var xlList;
@@ -218,14 +241,32 @@ @@ -218,14 +241,32 @@
218 var list; 241 var list;
219 $("#forms tbody").on("click","a",function(){ 242 $("#forms tbody").on("click","a",function(){
220 var index = $(this).parent().parent().index(); 243 var index = $(this).parent().parent().index();
221 - $.each(list, function(i, g){  
222 - if(index == i){  
223 - var tbodyHtml = template('list_maps',{list:g.map});  
224 - $('#map tbody').html(tbodyHtml);  
225 - $("#map .hidden").removeClass("hidden");  
226 - $("html,body").animate({scrollTop:$("#map").offset().top},1000);  
227 - }  
228 - }); 244 + if(index < list.length - 1){
  245 + $.each(list, function(i, g){
  246 + if(index == i){
  247 + var tbodyHtml = template('list_maps',{list:g.map});
  248 + $('#map tbody').html(tbodyHtml);
  249 + $("#sumMap tr").addClass("hidden");
  250 + $("#exportSumMap").addClass("hidden");
  251 + $("#map .hidden").removeClass("hidden");
  252 + $("#exportMap").removeClass("hidden");
  253 + $("html,body").animate({scrollTop:$("#map").offset().top},1000);
  254 + }
  255 + });
  256 + } else {
  257 + var tempList = [];
  258 + $.each(list, function(i, g){
  259 + if(index == i){
  260 + var tbodyHtml = template('list_sumMaps',{list:g.map});
  261 + $('#sumMap tbody').html(tbodyHtml);
  262 + $("#map tr").addClass("hidden");
  263 + $("#exportMap").addClass("hidden");
  264 + $("#sumMap .hidden").removeClass("hidden");
  265 + $("#exportSumMap").removeClass("hidden");
  266 + $("html,body").animate({scrollTop:$("#sumMap").offset().top},1000);
  267 + }
  268 + });
  269 + }
229 }); 270 });
230 271
231 $("#query").on("click",jsDoQuery); 272 $("#query").on("click",jsDoQuery);
@@ -260,6 +301,7 @@ @@ -260,6 +301,7 @@
260 params['type'] = "query"; 301 params['type'] = "query";
261 $("#forms .hidden").removeClass("hidden"); 302 $("#forms .hidden").removeClass("hidden");
262 $("#map tr").addClass("hidden"); 303 $("#map tr").addClass("hidden");
  304 + $("#sumMap tr").addClass("hidden");
263 $get('/pcpc/firstAndLastBus_sum', params, function(result){ 305 $get('/pcpc/firstAndLastBus_sum', params, function(result){
264 // 把数据填充到模版中 306 // 把数据填充到模版中
265 var tbodyHtml = template('list_firstAndLastBus_sum',{list:result}); 307 var tbodyHtml = template('list_firstAndLastBus_sum',{list:result});
@@ -288,6 +330,28 @@ @@ -288,6 +330,28 @@
288 }); 330 });
289 }); 331 });
290 332
  333 + $("#exportMap").on("click",function(){
  334 + $("#map").table2excel({
  335 + exclue: ".noExl",
  336 + name: "Excel Document Name.xlsx",
  337 + filename: "线路首末班",
  338 + exclude_img: true,
  339 + exclude_links: true,
  340 + exclude_inputs: true
  341 + });
  342 + });
  343 +
  344 + $("#exportSumMap").on("click",function(){
  345 + $("#sumMap").table2excel({
  346 + exclue: ".noExl",
  347 + name: "Excel Document Name.xlsx",
  348 + filename: "首末班误点班次",
  349 + exclude_img: true,
  350 + exclude_links: true,
  351 + exclude_inputs: true
  352 + });
  353 + });
  354 +
291 355
292 }); 356 });
293 357
@@ -307,7 +371,7 @@ @@ -307,7 +371,7 @@
307 <td colspan='4'>{{obj.date}}</td> 371 <td colspan='4'>{{obj.date}}</td>
308 <td>{{obj.jhbc}}</td> 372 <td>{{obj.jhbc}}</td>
309 <td>{{obj.sjbc}}</td> 373 <td>{{obj.sjbc}}</td>
310 - <td>{{obj.zdl}}</td> 374 + <td><a id='delay'>{{obj.zdl}}</a></td>
311 {{/if}} 375 {{/if}}
312 </tr> 376 </tr>
313 {{/each}} 377 {{/each}}
@@ -368,4 +432,19 @@ @@ -368,4 +432,19 @@
368 {{/if}} 432 {{/if}}
369 </tr> 433 </tr>
370 {{/each}} 434 {{/each}}
  435 +</script>
  436 +<script type="text/html" id="list_sumMaps">
  437 + {{each list as obj i}}
  438 + <tr>
  439 + <td>{{obj.no}}</td>
  440 + <td>{{obj.date}}</td>
  441 + <td>{{obj.subCompany}}</td>
  442 + <td>{{obj.line}}</td>
  443 + <td>{{obj.firstOrLast}}</td>
  444 + <td>{{obj.jhfc}}</td>
  445 + <td>{{obj.sjfc}}</td>
  446 + <td> {{obj.delay}}</td>
  447 + <td>{{obj.remarks1}}</td>
  448 + </tr>
  449 + {{/each}}
371 </script> 450 </script>
372 \ No newline at end of file 451 \ No newline at end of file
src/main/resources/static/pages/forms/statement/js/jquery.table2excel.min.js 0 → 100644
  1 +/*
  2 + * jQuery table2excel - v1.1.1
  3 + * jQuery plugin to export an .xls file in browser from an HTML table
  4 + * https://github.com/rainabba/jquery-table2excel
  5 + *
  6 + * Made by rainabba
  7 + * Under MIT License
  8 + */
  9 +!function(a,b,c,d){function e(b,c){this.element=b,this.settings=a.extend({},k,c),this._defaults=k,this._name=j,this.init()}function f(a){return a.filename?a.filename:"table2excel"}function g(a){var b=/(\s+alt\s*=\s*"([^"]*)"|\s+alt\s*=\s*'([^']*)')/i;return a.replace(/<img[^>]*>/gi,function(a){var c=b.exec(a);return null!==c&&c.length>=2?c[2]:""})}function h(a){return a.replace(/<a[^>]*>|<\/a>/gi,"")}function i(a){var b=/(\s+value\s*=\s*"([^"]*)"|\s+value\s*=\s*'([^']*)')/i;return a.replace(/<input[^>]*>|<\/input>/gi,function(a){var c=b.exec(a);return null!==c&&c.length>=2?c[2]:""})}var j="table2excel",k={exclude:".noExl",name:"Table2Excel",filename:"table2excel",fileext:".xls",exclude_img:!0,exclude_links:!0,exclude_inputs:!0};e.prototype={init:function(){var b=this;b.template={head:'<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8"><head>\x3c!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets>',sheet:{head:"<x:ExcelWorksheet><x:Name>",tail:"</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>"},mid:"</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--\x3e</head><body>",table:{head:"<table>",tail:"</table>"},foot:"</body></html>"},b.tableRows=[],a(b.element).each(function(c,d){var e="";a(d).find("tr").not(b.settings.exclude).each(function(c,d){e+="<tr>",a(d).find("td,th").not(b.settings.exclude).each(function(c,d){var f={rows:a(this).attr("rowspan"),cols:a(this).attr("colspan"),flag:a(d).find(b.settings.exclude)};f.flag.length>0?e+="<td> </td>":f.rows&f.cols?e+="<td>"+a(d).html()+"</td>":(e+="<td",f.rows>0&&(e+=" rowspan='"+f.rows+"' "),f.cols>0&&(e+=" colspan='"+f.cols+"' "),e+="/>"+a(d).html()+"</td>")}),e+="</tr>",console.log(e)}),b.settings.exclude_img&&(e=g(e)),b.settings.exclude_links&&(e=h(e)),b.settings.exclude_inputs&&(e=i(e)),b.tableRows.push(e)}),b.tableToExcel(b.tableRows,b.settings.name,b.settings.sheetName)},tableToExcel:function(d,e,g){var h,i,j,k=this,l="";if(k.format=function(a,b){return a.replace(/{(\w+)}/g,function(a,c){return b[c]})},g=void 0===g?"Sheet":g,k.ctx={worksheet:e||"Worksheet",table:d,sheetName:g},l=k.template.head,a.isArray(d))for(h in d)l+=k.template.sheet.head+g+h+k.template.sheet.tail;if(l+=k.template.mid,a.isArray(d))for(h in d)l+=k.template.table.head+"{table"+h+"}"+k.template.table.tail;l+=k.template.foot;for(h in d)k.ctx["table"+h]=d[h];if(delete k.ctx.table,!c.documentMode){var m=new Blob([k.format(l,k.ctx)],{type:"application/vnd.ms-excel"});b.URL=b.URL||b.webkitURL,i=b.URL.createObjectURL(m),j=c.createElement("a"),j.download=f(k.settings),j.href=i,c.body.appendChild(j),j.click(),c.body.removeChild(j)}else if("undefined"!=typeof Blob){l=k.format(l,k.ctx),l=[l];var n=new Blob(l,{type:"text/html"});b.navigator.msSaveBlob(n,f(k.settings))}else txtArea1.document.open("text/html","replace"),txtArea1.document.write(k.format(l,k.ctx)),txtArea1.document.close(),txtArea1.focus(),sa=txtArea1.document.execCommand("SaveAs",!0,f(k.settings));return!0}},a.fn[j]=function(b){var c=this;return c.each(function(){a.data(c,"plugin_"+j)||a.data(c,"plugin_"+j,new e(this,b))}),c}}(jQuery,window,document);
0 \ No newline at end of file 10 \ No newline at end of file
src/main/resources/static/pages/mforms/singledatas/jquery.table2excel.min.js 0 → 100644
  1 +/*
  2 + * jQuery table2excel - v1.1.1
  3 + * jQuery plugin to export an .xls file in browser from an HTML table
  4 + * https://github.com/rainabba/jquery-table2excel
  5 + *
  6 + * Made by rainabba
  7 + * Under MIT License
  8 + */
  9 +!function(a,b,c,d){function e(b,c){this.element=b,this.settings=a.extend({},k,c),this._defaults=k,this._name=j,this.init()}function f(a){return a.filename?a.filename:"table2excel"}function g(a){var b=/(\s+alt\s*=\s*"([^"]*)"|\s+alt\s*=\s*'([^']*)')/i;return a.replace(/<img[^>]*>/gi,function(a){var c=b.exec(a);return null!==c&&c.length>=2?c[2]:""})}function h(a){return a.replace(/<a[^>]*>|<\/a>/gi,"")}function i(a){var b=/(\s+value\s*=\s*"([^"]*)"|\s+value\s*=\s*'([^']*)')/i;return a.replace(/<input[^>]*>|<\/input>/gi,function(a){var c=b.exec(a);return null!==c&&c.length>=2?c[2]:""})}var j="table2excel",k={exclude:".noExl",name:"Table2Excel",filename:"table2excel",fileext:".xls",exclude_img:!0,exclude_links:!0,exclude_inputs:!0};e.prototype={init:function(){var b=this;b.template={head:'<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8"><head>\x3c!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets>',sheet:{head:"<x:ExcelWorksheet><x:Name>",tail:"</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>"},mid:"</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--\x3e</head><body>",table:{head:"<table>",tail:"</table>"},foot:"</body></html>"},b.tableRows=[],a(b.element).each(function(c,d){var e="";a(d).find("tr").not(b.settings.exclude).each(function(c,d){e+="<tr>",a(d).find("td,th").not(b.settings.exclude).each(function(c,d){var f={rows:a(this).attr("rowspan"),cols:a(this).attr("colspan"),flag:a(d).find(b.settings.exclude)};f.flag.length>0?e+="<td> </td>":f.rows&f.cols?e+="<td>"+a(d).html()+"</td>":(e+="<td",f.rows>0&&(e+=" rowspan='"+f.rows+"' "),f.cols>0&&(e+=" colspan='"+f.cols+"' "),e+="/>"+a(d).html()+"</td>")}),e+="</tr>",console.log(e)}),b.settings.exclude_img&&(e=g(e)),b.settings.exclude_links&&(e=h(e)),b.settings.exclude_inputs&&(e=i(e)),b.tableRows.push(e)}),b.tableToExcel(b.tableRows,b.settings.name,b.settings.sheetName)},tableToExcel:function(d,e,g){var h,i,j,k=this,l="";if(k.format=function(a,b){return a.replace(/{(\w+)}/g,function(a,c){return b[c]})},g=void 0===g?"Sheet":g,k.ctx={worksheet:e||"Worksheet",table:d,sheetName:g},l=k.template.head,a.isArray(d))for(h in d)l+=k.template.sheet.head+g+h+k.template.sheet.tail;if(l+=k.template.mid,a.isArray(d))for(h in d)l+=k.template.table.head+"{table"+h+"}"+k.template.table.tail;l+=k.template.foot;for(h in d)k.ctx["table"+h]=d[h];if(delete k.ctx.table,!c.documentMode){var m=new Blob([k.format(l,k.ctx)],{type:"application/vnd.ms-excel"});b.URL=b.URL||b.webkitURL,i=b.URL.createObjectURL(m),j=c.createElement("a"),j.download=f(k.settings),j.href=i,c.body.appendChild(j),j.click(),c.body.removeChild(j)}else if("undefined"!=typeof Blob){l=k.format(l,k.ctx),l=[l];var n=new Blob(l,{type:"text/html"});b.navigator.msSaveBlob(n,f(k.settings))}else txtArea1.document.open("text/html","replace"),txtArea1.document.write(k.format(l,k.ctx)),txtArea1.document.close(),txtArea1.focus(),sa=txtArea1.document.execCommand("SaveAs",!0,f(k.settings));return!0}},a.fn[j]=function(b){var c=this;return c.each(function(){a.data(c,"plugin_"+j)||a.data(c,"plugin_"+j,new e(this,b))}),c}}(jQuery,window,document);
0 \ No newline at end of file 10 \ No newline at end of file
src/main/resources/static/pages/mforms/singledatas/singledata.html
@@ -192,13 +192,30 @@ @@ -192,13 +192,30 @@
192 var tjtype=$("#tjtype").val(); 192 var tjtype=$("#tjtype").val();
193 var params = {}; 193 var params = {};
194 var i = layer.load(2); 194 var i = layer.load(2);
195 - $get("/mcy_forms/singledatatj",{ gsdmSing:gsdmSing,fgsdmSing:fgsdmSing, line:line,startDate:startDate,lpName:lpName,tjtype:tjtype},function(result){  
196 - layer.close(i);  
197 - var singledata = template('singledata',{list:result});  
198 - // 把渲染好的模版html文本追加到表格中  
199 - $('#forms tbody').html(singledata);  
200 -  
201 - }); 195 +// if(tjtype=='jsy'){
  196 + $get("/mcy_forms/singledatatj",{ gsdmSing:gsdmSing,fgsdmSing:fgsdmSing, line:line,startDate:startDate,lpName:lpName,tjtype:tjtype},function(result){
  197 + layer.close(i);
  198 + var singledata = template('singledata',{list:result});
  199 + // 把渲染好的模版html文本追加到表格中
  200 + $('#forms tbody').html(singledata);
  201 +
  202 + });
  203 +// }else{
  204 +// $get("/mcy_forms/singledata",{ gsdmSing:gsdmSing,fgsdmSing:fgsdmSing, line:line,startDate:startDate,lpName:lpName,tjtype:tjtype},function(result){
  205 +// layer.close(i);
  206 +// var date=new Array(); //存放文本框数组
  207 +// $.each(result, function (i, obj) {
  208 +// if(obj.sgh !='' && obj.sgh!=null){
  209 +// date.push(obj);
  210 +// }
  211 +// });
  212 +// var singledata = template('singledata2',{result});
  213 +// // 把渲染好的模版html文本追加到表格中
  214 +// $('#forms tbody').html(singledata);
  215 +
  216 +// });
  217 +// }
  218 +
202 }); 219 });
203 220
204 $("#export").on("click",function(){ 221 $("#export").on("click",function(){
@@ -209,9 +226,16 @@ @@ -209,9 +226,16 @@
209 var gsdmSing = $("#gsdmSing").val(); 226 var gsdmSing = $("#gsdmSing").val();
210 var fgsdmSing = $("#fgsdmSing").val(); 227 var fgsdmSing = $("#fgsdmSing").val();
211 var tjtype=$("#tjtype").val(); 228 var tjtype=$("#tjtype").val();
212 - $get('/mcy_export/singledataExportTj',{gsdmSing:gsdmSing,fgsdmSing:fgsdmSing,line:line,startDate:startDate,endDate:endDate,tjtype:tjtype,type:'export'},function(result){  
213 - window.open("/downloadFile/download?fileName=路单数据"+moment(startDate).format("YYYYMMDD"));  
214 - }); 229 +// if(tjtype=='jsy'){
  230 + $get('/mcy_export/singledataExportTj',{gsdmSing:gsdmSing,fgsdmSing:fgsdmSing,line:line,startDate:startDate,endDate:endDate,tjtype:tjtype,type:'export'},function(result){
  231 + window.open("/downloadFile/download?fileName=路单数据"+moment(startDate).format("YYYYMMDD"));
  232 + });
  233 +// }else{
  234 +// $get('/mcy_export/singledataExport',{gsdmSing:gsdmSing,fgsdmSing:fgsdmSing,line:line,startDate:startDate,endDate:endDate,tjtype:tjtype,type:'export'},function(result){
  235 +// window.open("/downloadFile/download?fileName=路单数据"+moment(startDate).format("YYYYMMDD"));
  236 +// });
  237 +// }
  238 +
215 }); 239 });
216 }); 240 });
217 </script> 241 </script>
@@ -241,4 +265,29 @@ @@ -241,4 +265,29 @@
241 </tr> 265 </tr>
242 {{/if}} 266 {{/if}}
243 </script> 267 </script>
244 -</script>  
245 \ No newline at end of file 268 \ No newline at end of file
  269 +<script type="text/html" id="singledata2">
  270 + {{each list as obj i}}
  271 + <tr>
  272 + <td>{{i+1}}</td>
  273 + <td>{{obj.rQ}}</td>
  274 + <td>{{obj.gS}}</td>
  275 + <td>{{obj.xlmc}}</td>
  276 + <td>{{obj.clzbh}}</td>
  277 + <td></td>
  278 + <td></td>
  279 + <td>{{obj.sgh}}</td>
  280 + <td>{{obj.sName}}</td>
  281 + <td>{{obj.jhlc}}</td>
  282 + <td>{{obj.emptMileage}}</td>
  283 + <td></td>
  284 + <td></td>
  285 + <td></td>
  286 + <td>{{obj.jhjl}}</td>
  287 + </tr>
  288 + {{/each}}
  289 + {{if list.length == 0}}
  290 + <tr>
  291 + <td colspan="16"><h6 class="muted">没有找到相关数据</h6></td>
  292 + </tr>
  293 + {{/if}}
  294 +</script>
src/main/resources/static/pages/oil/add.html
@@ -392,24 +392,38 @@ @@ -392,24 +392,38 @@
392 var date=$("#date").val(); 392 var date=$("#date").val();
393 var jsy=$("#jsy").val(); 393 var jsy=$("#jsy").val();
394 var xlbm=$("#xlbm").val(); 394 var xlbm=$("#xlbm").val();
  395 + var gsdm=$("#ssgsdm").val();
395 var map={}; 396 var map={};
396 map["nbbm"]=nbbm; 397 map["nbbm"]=nbbm;
397 map["date"]=date; 398 map["date"]=date;
398 map["jsy"]=jsy; 399 map["jsy"]=jsy;
399 map["xlbm"]=xlbm; 400 map["xlbm"]=xlbm;
  401 + map["date"]=date;
  402 + map["rq"]=date;
  403 + map["ssgsdm_like"]=gsdm;
400 //检查一下用户是否存在 404 //检查一下用户是否存在
401 - $get('/ylb/checkJsy', map, function(fage){  
402 - if(fage=="0"){  
403 - layer.msg('该驾驶员当天已存在.'); 405 + var i = layer.load(2);
  406 + $get('/ylb/checkDate', map, function(fage){
  407 + if(fage=="2"){
  408 + layer.msg('只能操作三天内数据.');
  409 + layer.close(i);
404 }else{ 410 }else{
405 - $post('/ylb/saveYlb', params, function(){  
406 - layer.msg('添加信息成功.');  
407 - loadPage('list_ph.html'); 411 + $get('/ylb/checkJsy', map, function(fage){
  412 + if(fage=="0"){
  413 + layer.msg('该驾驶员当天已存在.');
  414 + layer.close(i);
  415 + }else{
  416 + $post('/ylb/saveYlb', params, function(){
  417 + layer.msg('添加信息成功.');
  418 + layer.close(i);
  419 + loadPage('list_ph.html');
  420 + });
  421 + }
408 }); 422 });
409 } 423 }
410 - }); 424 + })
411 } 425 }
412 - });  
413 }); 426 });
  427 + });
414 })(); 428 })();
415 </script> 429 </script>
416 \ No newline at end of file 430 \ No newline at end of file
src/main/resources/static/pages/oil/list_ph.html
@@ -336,16 +336,24 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -336,16 +336,24 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
336 var fage=false; 336 var fage=false;
337 //var id = 15; 337 //var id = 15;
338 //$('.in_carpark_jzyl[data-id='+id+']', '#ll_oil_list') 338 //$('.in_carpark_jzyl[data-id='+id+']', '#ll_oil_list')
339 - 339 +
  340 +
340 $("#checkYl").on('click', function () { 341 $("#checkYl").on('click', function () {
341 //console.log("核对加注量"); 342 //console.log("核对加注量");
342 if ($("#rq").val() != "") { 343 if ($("#rq").val() != "") {
343 - var params=getParamsList();  
344 - var i = layer.load(2);  
345 - $get('/ylb/checkYl', params, function () {  
346 - layer.close(i);  
347 - jsDoQuery(params, true);  
348 - }); 344 + var params=getParamsList();
  345 + $get('/ylb/checkDate',params,function(status){
  346 + if(status=='2'){
  347 + layer.msg('只能操作三天内数据.');
  348 + }else{
  349 + var i = layer.load(2);
  350 + $get('/ylb/checkYl', params, function () {
  351 + layer.close(i);
  352 + jsDoQuery(params, true);
  353 + });
  354 + }
  355 + })
  356 +
349 } else { 357 } else {
350 layer.msg('请选择日期.'); 358 layer.msg('请选择日期.');
351 } 359 }
@@ -355,12 +363,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -355,12 +363,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
355 $("#outAndIn").on('click', function () { 363 $("#outAndIn").on('click', function () {
356 // console.log("进场油量等于出场油量"); 364 // console.log("进场油量等于出场油量");
357 if ($("#rq").val() != "") { 365 if ($("#rq").val() != "") {
358 - var params=getParamsList();  
359 - var i = layer.load(2);  
360 - $get('/ylb/outAndIn', params, function () {  
361 - layer.close(i);  
362 - jsDoQuery(params, true);  
363 - }); 366 + var params=getParamsList();
  367 + $get('/ylb/checkDate',params,function(status){
  368 + if(status=='2'){
  369 + layer.msg('只能操作三天内数据.');
  370 + }else{
  371 + var i = layer.load(2);
  372 + $get('/ylb/outAndIn', params, function () {
  373 + layer.close(i);
  374 + jsDoQuery(params, true);
  375 + });
  376 + }
  377 + })
364 } else { 378 } else {
365 layer.msg('请选择日期.'); 379 layer.msg('请选择日期.');
366 } 380 }
@@ -368,164 +382,180 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -368,164 +382,180 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
368 382
369 //保存 383 //保存
370 $(".saveButton").on('click',function(){ 384 $(".saveButton").on('click',function(){
371 - var ylArray = [];  
372 - $('input.icheck').each(function(){  
373 - var map = {};  
374 - var id=$(this).data('id');  
375 - var nbbm =$('.in_carpark_nbbm[data-id='+id+']', '#ll_oil_list').html();  
376 - var jzl =$('.in_carpark_jzl[data-id='+id+']', '#ll_oil_list').html();  
377 - if(jzl=="" || jzl ==null){  
378 - jzl=0;  
379 - }  
380 - var czyl=$('.in_carpark_czyl[data-id='+id+']', '#ll_oil_list').val();  
381 - if(czyl=="" || czyl==null){  
382 - czyl=0;  
383 - }  
384 - var jzyl=$('.in_carpark_jzyl[data-id='+id+']', '#ll_oil_list').val();  
385 - if(jzyl=="" || jzyl==null){  
386 - jzyl=0;  
387 - }  
388 -  
389 - var sh = $('.in_carpark_shyl[data-id='+id+']', '#ll_oil_list').val();  
390 - if(sh=="" || sh==null){  
391 - sh=0;  
392 - }  
393 -  
394 - var shyy = $('.in_carpark_shyy[data-id='+id+']', '#ll_oil_list').val();  
395 - var ns = $('.in_carpark_ns[data-id='+id+']', '#ll_oil_list').val();  
396 - if(ns=="" || ns==null){  
397 - ns=0; 385 +
  386 + var params_=getParamsList();
  387 + $get('/ylb/checkDate',params_,function(status){
  388 + if(status=='2'){
  389 + layer.msg('只能操作三天内数据.');
  390 + }else{
  391 + var ylArray = [];
  392 + $('input.icheck').each(function(){
  393 + var map = {};
  394 + var id=$(this).data('id');
  395 + var nbbm =$('.in_carpark_nbbm[data-id='+id+']', '#ll_oil_list').html();
  396 + var jzl =$('.in_carpark_jzl[data-id='+id+']', '#ll_oil_list').html();
  397 + if(jzl=="" || jzl ==null){
  398 + jzl=0;
  399 + }
  400 + var czyl=$('.in_carpark_czyl[data-id='+id+']', '#ll_oil_list').val();
  401 + if(czyl=="" || czyl==null){
  402 + czyl=0;
  403 + }
  404 + var jzyl=$('.in_carpark_jzyl[data-id='+id+']', '#ll_oil_list').val();
  405 + if(jzyl=="" || jzyl==null){
  406 + jzyl=0;
  407 + }
  408 +
  409 + var sh = $('.in_carpark_shyl[data-id='+id+']', '#ll_oil_list').val();
  410 + if(sh=="" || sh==null){
  411 + sh=0;
  412 + }
  413 +
  414 + var shyy = $('.in_carpark_shyy[data-id='+id+']', '#ll_oil_list').val();
  415 + var ns = $('.in_carpark_ns[data-id='+id+']', '#ll_oil_list').val();
  416 + if(ns=="" || ns==null){
  417 + ns=0;
  418 + }
  419 +
  420 + var rylx= $('.in_carpark_rylx[data-id='+id+']', '#ll_oil_list').val();
  421 + var yhlx = $('.in_carpark_yhlx[data-id='+id+']', '#ll_oil_list').val();
  422 +
  423 + map['id']=id;
  424 + map['jzl']=jzl;
  425 + map['czyl']=czyl;
  426 + map['jzyl']=jzyl;
  427 + map['sh']=sh;
  428 + map['shyy']=shyy;
  429 + map['ns']=ns;
  430 + map['rylx']=rylx;
  431 + map['yhlx']=yhlx;
  432 + map['nbbm']=nbbm;
  433 + map['rq']=$("#rq").val();
  434 + ylArray.push(map);
  435 + })
  436 + var params = {};
  437 + params['ylbList']=JSON.stringify(ylArray);
  438 + var i = layer.load(2);
  439 + $post('/ylb/saveYlbList', params, function () {
  440 + layer.close(i);
  441 + var params1 =getParamsList();
  442 + jsDoQuery(params1, true);
  443 + });
398 } 444 }
399 -  
400 - var rylx= $('.in_carpark_rylx[data-id='+id+']', '#ll_oil_list').val();  
401 - var yhlx = $('.in_carpark_yhlx[data-id='+id+']', '#ll_oil_list').val();  
402 -  
403 - map['id']=id;  
404 - map['jzl']=jzl;  
405 - map['czyl']=czyl;  
406 - map['jzyl']=jzyl;  
407 - map['sh']=sh;  
408 - map['shyy']=shyy;  
409 - map['ns']=ns;  
410 - map['rylx']=rylx;  
411 - map['yhlx']=yhlx;  
412 - map['nbbm']=nbbm;  
413 - map['rq']=$("#rq").val();  
414 - ylArray.push(map);  
415 }) 445 })
416 - var params = {};  
417 - params['ylbList']=JSON.stringify(ylArray);  
418 - var i = layer.load(2);  
419 - $post('/ylb/saveYlbList', params, function () {  
420 - layer.close(i);  
421 - var params1 =getParamsList();  
422 - jsDoQuery(params1, true);  
423 - });  
424 }) 446 })
425 //拆分 447 //拆分
426 $(".sortButton").on('click', function () { 448 $(".sortButton").on('click', function () {
427 if ($("#rq").val() != "") { 449 if ($("#rq").val() != "") {
428 - //拆分前先保存全部  
429 - var ylArray = [];  
430 - $('input.icheck').each(function(){  
431 - var map = {};  
432 - var id=$(this).data('id');  
433 - var nbbm =$('.in_carpark_nbbm[data-id='+id+']', '#ll_oil_list').html();  
434 - var jzl =$('.in_carpark_jzl[data-id='+id+']', '#ll_oil_list').html();  
435 - if(jzl=="" || jzl ==null){  
436 - jzl=0;  
437 - }  
438 - var czyl=$('.in_carpark_czyl[data-id='+id+']', '#ll_oil_list').val();  
439 - if(czyl=="" || czyl==null){  
440 - czyl=0;  
441 - }  
442 - var jzyl=$('.in_carpark_jzyl[data-id='+id+']', '#ll_oil_list').val();  
443 - if(jzyl=="" || jzyl==null){  
444 - jzyl=0;  
445 - }  
446 -  
447 - var sh = $('.in_carpark_shyl[data-id='+id+']', '#ll_oil_list').val();  
448 - if(sh=="" || sh==null){  
449 - sh=0;  
450 - }  
451 -  
452 - var shyy = $('.in_carpark_shyy[data-id='+id+']', '#ll_oil_list').val();  
453 - var ns = $('.in_carpark_ns[data-id='+id+']', '#ll_oil_list').val();  
454 - if(ns=="" || ns==null){  
455 - ns=0;  
456 - }  
457 -  
458 - var rylx= $('.in_carpark_rylx[data-id='+id+']', '#ll_oil_list').val();  
459 - var yhlx = $('.in_carpark_yhlx[data-id='+id+']', '#ll_oil_list').val();  
460 -  
461 - map['id']=id;  
462 - map['jzl']=jzl;  
463 - map['czyl']=czyl;  
464 - map['jzyl']=jzyl;  
465 - map['sh']=sh;  
466 - map['shyy']=shyy;  
467 - map['ns']=ns;  
468 - map['rylx']=rylx;  
469 - map['yhlx']=yhlx;  
470 - map['nbbm']=nbbm;  
471 - map['rq']=$("#rq").val();  
472 - ylArray.push(map);  
473 - })  
474 - var params = {};  
475 - params['ylbList']=JSON.stringify(ylArray);  
476 -  
477 -  
478 - //拆分操作  
479 - var ylArray2 = [];  
480 - var nbbm="";  
481 - var msg="";  
482 - $('input.icheck:checked').each(function(){  
483 - var map = {};  
484 - var id=$(this).data('id');  
485 - var clzbh =$('.in_carpark_nbbm[data-id='+id+']', '#ll_oil_list').html();  
486 - if(nbbm.indexOf(clzbh)>-1){  
487 - if(msg==""){  
488 - msg += clzbh;  
489 - }else{  
490 - msg += ","+clzbh;  
491 - }  
492 - }else{  
493 - nbbm +=clzbh;  
494 - var jzyl=$('.in_carpark_jzyl[data-id='+id+']', '#ll_oil_list').val();  
495 - var sh = $('.in_carpark_shyl[data-id='+id+']', '#ll_oil_list').val();  
496 - var shyy = $('.in_carpark_shyy[data-id='+id+']', '#ll_oil_list').val();  
497 - var ns = $('.in_carpark_ns[data-id='+id+']', '#ll_oil_list').val();  
498 - var rylx= $('.in_carpark_rylx[data-id='+id+']', '#ll_oil_list').val();  
499 - map['id']=id;  
500 - map['jzyl']=jzyl;  
501 - map['sh']=sh;  
502 - map['shyy']=shyy;  
503 - map['ns']=ns;  
504 - map['rylx']=rylx;  
505 - ylArray2.push(map);  
506 - }  
507 -  
508 - }) ;  
509 - if(msg!=""){  
510 - layer.msg('内部编码为:【'+msg +'】的车辆请选择一条数据进行拆分.');  
511 - }else{  
512 - var params2 = {};  
513 - params2['ylbList']=JSON.stringify(ylArray2);  
514 - var i = layer.load(2);  
515 - //保存操作  
516 - $post('/ylb/saveYlbList', params, function () {  
517 - //拆分操作  
518 - $post('/ylb/sort', params2, function () {  
519 - layer.close(i);  
520 - var params1 =getParamsList();  
521 - jsDoQuery(params1, true);  
522 - });  
523 - });  
524 - }  
525 - 450 + var params_=getParamsList();
  451 + $get('/ylb/checkDate',params_,function(status){
  452 + if(status=='2'){
  453 + layer.msg('只能操作三天内数据.');
  454 + }else{
  455 + //拆分前先保存全部
  456 + var ylArray = [];
  457 + $('input.icheck').each(function(){
  458 + var map = {};
  459 + var id=$(this).data('id');
  460 + var nbbm =$('.in_carpark_nbbm[data-id='+id+']', '#ll_oil_list').html();
  461 + var jzl =$('.in_carpark_jzl[data-id='+id+']', '#ll_oil_list').html();
  462 + if(jzl=="" || jzl ==null){
  463 + jzl=0;
  464 + }
  465 + var czyl=$('.in_carpark_czyl[data-id='+id+']', '#ll_oil_list').val();
  466 + if(czyl=="" || czyl==null){
  467 + czyl=0;
  468 + }
  469 + var jzyl=$('.in_carpark_jzyl[data-id='+id+']', '#ll_oil_list').val();
  470 + if(jzyl=="" || jzyl==null){
  471 + jzyl=0;
  472 + }
  473 +
  474 + var sh = $('.in_carpark_shyl[data-id='+id+']', '#ll_oil_list').val();
  475 + if(sh=="" || sh==null){
  476 + sh=0;
  477 + }
  478 +
  479 + var shyy = $('.in_carpark_shyy[data-id='+id+']', '#ll_oil_list').val();
  480 + var ns = $('.in_carpark_ns[data-id='+id+']', '#ll_oil_list').val();
  481 + if(ns=="" || ns==null){
  482 + ns=0;
  483 + }
  484 +
  485 + var rylx= $('.in_carpark_rylx[data-id='+id+']', '#ll_oil_list').val();
  486 + var yhlx = $('.in_carpark_yhlx[data-id='+id+']', '#ll_oil_list').val();
  487 +
  488 + map['id']=id;
  489 + map['jzl']=jzl;
  490 + map['czyl']=czyl;
  491 + map['jzyl']=jzyl;
  492 + map['sh']=sh;
  493 + map['shyy']=shyy;
  494 + map['ns']=ns;
  495 + map['rylx']=rylx;
  496 + map['yhlx']=yhlx;
  497 + map['nbbm']=nbbm;
  498 + map['rq']=$("#rq").val();
  499 + ylArray.push(map);
  500 + })
  501 + var params = {};
  502 + params['ylbList']=JSON.stringify(ylArray);
  503 +
  504 +
  505 + //拆分操作
  506 + var ylArray2 = [];
  507 + var nbbm="";
  508 + var msg="";
  509 + $('input.icheck:checked').each(function(){
  510 + var map = {};
  511 + var id=$(this).data('id');
  512 + var clzbh =$('.in_carpark_nbbm[data-id='+id+']', '#ll_oil_list').html();
  513 + if(nbbm.indexOf(clzbh)>-1){
  514 + if(msg==""){
  515 + msg += clzbh;
  516 + }else{
  517 + msg += ","+clzbh;
  518 + }
  519 + }else{
  520 + nbbm +=clzbh;
  521 + var jzyl=$('.in_carpark_jzyl[data-id='+id+']', '#ll_oil_list').val();
  522 + var sh = $('.in_carpark_shyl[data-id='+id+']', '#ll_oil_list').val();
  523 + var shyy = $('.in_carpark_shyy[data-id='+id+']', '#ll_oil_list').val();
  524 + var ns = $('.in_carpark_ns[data-id='+id+']', '#ll_oil_list').val();
  525 + var rylx= $('.in_carpark_rylx[data-id='+id+']', '#ll_oil_list').val();
  526 + map['id']=id;
  527 + map['jzyl']=jzyl;
  528 + map['sh']=sh;
  529 + map['shyy']=shyy;
  530 + map['ns']=ns;
  531 + map['rylx']=rylx;
  532 + ylArray2.push(map);
  533 + }
  534 +
  535 + }) ;
  536 + if(msg!=""){
  537 + layer.msg('内部编码为:【'+msg +'】的车辆请选择一条数据进行拆分.');
  538 + }else{
  539 + var params2 = {};
  540 + params2['ylbList']=JSON.stringify(ylArray2);
  541 + var i = layer.load(2);
  542 + //保存操作
  543 + $post('/ylb/saveYlbList', params, function () {
  544 + //拆分操作
  545 + $post('/ylb/sort', params2, function () {
  546 + layer.close(i);
  547 + var params1 =getParamsList();
  548 + jsDoQuery(params1, true);
  549 + });
  550 + });
  551 + }
  552 + }
  553 + })
526 } else { 554 } else {
527 layer.msg('请选择日期.'); 555 layer.msg('请选择日期.');
528 } 556 }
  557 +
  558 +
529 }) 559 })
530 560
531 /* //拆分 561 /* //拆分
@@ -583,13 +613,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -583,13 +613,18 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
583 $("#obtain").on('click', function () { 613 $("#obtain").on('click', function () {
584 //console.log("获取加存"); 614 //console.log("获取加存");
585 if ($("#rq").val() != "") { 615 if ($("#rq").val() != "") {
586 - var params =getParamsList();  
587 -  
588 - var i = layer.load(2);  
589 - $get('/ylb/obtain', params, function () {  
590 - layer.close(i);  
591 - jsDoQuery(params, true);  
592 - }); 616 + var params=getParamsList();
  617 + $get('/ylb/checkDate',params,function(status){
  618 + if(status=='2'){
  619 + layer.msg('只能操作三天内数据.');
  620 + }else{
  621 + var i = layer.load(2);
  622 + $get('/ylb/obtain', params, function () {
  623 + layer.close(i);
  624 + jsDoQuery(params, true);
  625 + });
  626 + }
  627 + })
593 } else { 628 } else {
594 layer.msg('请选择日期.'); 629 layer.msg('请选择日期.');
595 } 630 }
@@ -625,33 +660,8 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -625,33 +660,8 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
625 jsDoQuery(params, true); 660 jsDoQuery(params, true);
626 } 661 }
627 }); 662 });
628 -  
629 - function getParamsList(){  
630 - var cells = $('tr.filter')[0].cells  
631 - , cells1 = $('tr.filter2')[0].cells,params = {}  
632 - , name;  
633 - $.each(cells, function (i, cell) {  
634 - var items = $('input,select', cell);  
635 - for (var j = 0, item; item = items[j++];) {  
636 - name = $(item).attr('name');  
637 - if (name) {  
638 - params[name] = $(item).val();  
639 - }  
640 - }  
641 - });  
642 - $.each(cells1, function (i, cell) {  
643 - var items = $('input,select', cell);  
644 - for (var j = 0, item; item = items[j++];) {  
645 - name = $(item).attr('name');  
646 - if (name) {  
647 - params[name] = $(item).val();  
648 - }  
649 - }  
650 - });  
651 -  
652 - return params;  
653 - }  
654 663
  664 +
655 var xlList; 665 var xlList;
656 var obj=[]; 666 var obj=[];
657 $.get('/report/lineList',function(result){ 667 $.get('/report/lineList',function(result){
@@ -751,14 +761,20 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -751,14 +761,20 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
751 761
752 762
753 function jsyUpdate(){ 763 function jsyUpdate(){
754 - var id = $(this).data('id');  
755 - var jsy=$('.in_carpark_jsy[data-id='+id+']', '#ll_oil_list').val();  
756 - $get('/ylb/updateJsy',{id:id,jsy:jsy}, function(result){  
757 - layer.msg('修改成功.');  
758 - var params = getParamsList();  
759 - page = 0;  
760 - jsDoQuery(params, true);  
761 - }); 764 + var params=getParamsList();
  765 + $get('/ylb/checkDate',params,function(status){
  766 + if(status=='2'){
  767 + layer.msg('只能操作三天内数据.');
  768 + }else{
  769 + var id = $(this).data('id');
  770 + var jsy=$('.in_carpark_jsy[data-id='+id+']', '#ll_oil_list').val();
  771 + $get('/ylb/updateJsy',{id:id,jsy:jsy}, function(result){
  772 + layer.msg('修改成功.');
  773 + page = 0;
  774 + jsDoQuery(params, true);
  775 + });
  776 + }
  777 + })
762 778
763 } 779 }
764 //页面计算防止精度丢失 780 //页面计算防止精度丢失
@@ -883,32 +899,38 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -883,32 +899,38 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
883 899
884 //删除 900 //删除
885 $('.removeButton').on('click', function () { 901 $('.removeButton').on('click', function () {
886 - var idArray = [];  
887 - var x=0;  
888 - $('input.icheck:checked').each(function(){  
889 - x++;  
890 - var map ={};  
891 - var id=$(this).data('id');  
892 - map['id']=id;  
893 - idArray.push(map);  
894 - 902 + var params_=getParamsList();
  903 + $get('/ylb/checkDate',params_,function(status){
  904 + if(status=='2'){
  905 + layer.msg('只能操作三天内数据.');
  906 + }else{
  907 + var idArray = [];
  908 + var x=0;
  909 + $('input.icheck:checked').each(function(){
  910 + x++;
  911 + var map ={};
  912 + var id=$(this).data('id');
  913 + map['id']=id;
  914 + idArray.push(map);
  915 +
  916 + })
  917 + var params = {};
  918 + params['ids']=JSON.stringify(idArray);
  919 + if (x==0) {
  920 + layer.msg("请选择要删除的数据");
  921 + }else{
  922 + if(confirm('确定要删除选中的数据?'))
  923 + {
  924 + var i = layer.load(2);
  925 + $post('/ylb/deleteIds', params, function (result) {
  926 + layer.close(i);
  927 + var params=getParamsList();
  928 + jsDoQuery(params, true);
  929 + });
  930 + }
  931 + }
  932 + }
895 }) 933 })
896 - var params = {};  
897 - params['ids']=JSON.stringify(idArray);  
898 - console.log(idArray);  
899 - if (x==0) {  
900 - layer.msg("请选择要删除的数据");  
901 - }else{  
902 - if(confirm('确定要删除选中的数据?'))  
903 - {  
904 - var i = layer.load(2);  
905 - $post('/ylb/deleteIds', params, function (result) {  
906 - layer.close(i);  
907 - var params=getParamsList();  
908 - jsDoQuery(params, true);  
909 - });  
910 - }  
911 - }  
912 }); 934 });
913 935
914 $("#ylbListFgsdmId").on("change",initXl); 936 $("#ylbListFgsdmId").on("change",initXl);
@@ -1011,6 +1033,37 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep @@ -1011,6 +1033,37 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
1011 } 1033 }
1012 }); 1034 });
1013 1035
  1036 + function checkDate(){
  1037 + var params=getParamsList();
  1038 +
  1039 + }
  1040 +
  1041 + function getParamsList(){
  1042 + var cells = $('tr.filter')[0].cells
  1043 + , cells1 = $('tr.filter2')[0].cells,params = {}
  1044 + , name;
  1045 + $.each(cells, function (i, cell) {
  1046 + var items = $('input,select', cell);
  1047 + for (var j = 0, item; item = items[j++];) {
  1048 + name = $(item).attr('name');
  1049 + if (name) {
  1050 + params[name] = $(item).val();
  1051 + }
  1052 + }
  1053 + });
  1054 + $.each(cells1, function (i, cell) {
  1055 + var items = $('input,select', cell);
  1056 + for (var j = 0, item; item = items[j++];) {
  1057 + name = $(item).attr('name');
  1058 + if (name) {
  1059 + params[name] = $(item).val();
  1060 + }
  1061 + }
  1062 + });
  1063 +
  1064 + return params;
  1065 + }
  1066 +
1014 //表格滚动条 1067 //表格滚动条
1015 var modal='#ylbtable'; 1068 var modal='#ylbtable';
1016 $('#datatable_ylb_body_div', modal).perfectScrollbar({suppressScrollX: true}); 1069 $('#datatable_ylb_body_div', modal).perfectScrollbar({suppressScrollX: true});
src/main/resources/static/pages/report/countMileage/countLine/countLineMileage.html
@@ -263,7 +263,7 @@ @@ -263,7 +263,7 @@
263 params['xlName'] = xlName; 263 params['xlName'] = xlName;
264 params['type'] = "query"; 264 params['type'] = "query";
265 var i = layer.load(2); 265 var i = layer.load(2);
266 - $get('/report/countLineMileage2',params,function(result){ 266 + $get('/report/countLineMileage',params,function(result){
267 $("#datetodate").html(date+"至"+date2); 267 $("#datetodate").html(date+"至"+date2);
268 layer.close(i); 268 layer.close(i);
269 // 把数据填充到模版中 269 // 把数据填充到模版中
@@ -290,7 +290,7 @@ @@ -290,7 +290,7 @@
290 params['xlName'] = xlName; 290 params['xlName'] = xlName;
291 params['type'] = "export"; 291 params['type'] = "export";
292 params['by']='sj'; 292 params['by']='sj';
293 - $get('/report/countLineMileage2',params,function(result){ 293 + $get('/report/countLineMileage',params,function(result){
294 window.open("/downloadFile/download?fileName=线路公里统计表"); 294 window.open("/downloadFile/download?fileName=线路公里统计表");
295 }); 295 });
296 }); 296 });
src/main/resources/static/pages/report/message/message.html
@@ -217,7 +217,7 @@ @@ -217,7 +217,7 @@
217 line = $("#line").val(); 217 line = $("#line").val();
218 date = $("#date").val(); 218 date = $("#date").val();
219 var obj = $(this); 219 var obj = $(this);
220 - $get('/realSchedule/historyMessage',{line:line,date:date,code:jName,type:"query"},function(result){ 220 + $get('/report/historyMessageList',{line:line,date:date,code:jName,type:"query"},function(result){
221 var list_history_msg = template('list_history_msg',{list:result}); 221 var list_history_msg = template('list_history_msg',{list:result});
222 // 把渲染好的模版html文本追加到表格中 222 // 把渲染好的模版html文本追加到表格中
223 $('#forms tbody').html(list_history_msg); 223 $('#forms tbody').html(list_history_msg);
@@ -237,7 +237,7 @@ @@ -237,7 +237,7 @@
237 }); 237 });
238 238
239 $("#export").on("click",function(){ 239 $("#export").on("click",function(){
240 - $get('/realSchedule/historyMessage',{line:line,date:date,code:jName,type:"export_msg"},function(result){ 240 + $get('/report/historyMessageList',{line:line,date:date,code:jName,type:"export_msg"},function(result){
241 window.open("/downloadFile/download?fileName=调度消息分析"+moment(date).format("YYYYMMDD")); 241 window.open("/downloadFile/download?fileName=调度消息分析"+moment(date).format("YYYYMMDD"));
242 }); 242 });
243 }); 243 });
@@ -274,12 +274,12 @@ @@ -274,12 +274,12 @@
274 {{each list as obj i}} 274 {{each list as obj i}}
275 <tr> 275 <tr>
276 <td>{{i+1}}</td> 276 <td>{{i+1}}</td>
277 - <td>{{obj[4]}}</td>  
278 - <!--<td>{{obj[6]}}</td>-->  
279 <td>{{obj[0]}}</td> 277 <td>{{obj[0]}}</td>
  278 + <!--<td>{{obj[6]}}</td>-->
280 <td>{{obj[1]}}</td> 279 <td>{{obj[1]}}</td>
281 - <td>{{obj[3]}}</td>  
282 <td>{{obj[2]}}</td> 280 <td>{{obj[2]}}</td>
  281 + <td>{{obj[3]}}</td>
  282 + <td>{{obj[4]}}</td>
283 </tr> 283 </tr>
284 {{/each}} 284 {{/each}}
285 {{if list.length == 0}} 285 {{if list.length == 0}}
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice.js
@@ -745,6 +745,25 @@ angular.module(&#39;ScheduleApp&#39;).factory( @@ -745,6 +745,25 @@ angular.module(&#39;ScheduleApp&#39;).factory(
745 } 745 }
746 } 746 }
747 } 747 }
  748 + ),
  749 +
  750 + lineverions: $resource(
  751 + '/tic_ec/versiondesc2/:lineId/:status',
  752 + {},
  753 + {
  754 + list: {
  755 + method: 'GET',
  756 + isArray: true,
  757 + transformResponse: function(rs) {
  758 + var dst = angular.fromJson(rs);
  759 + if (dst.status == 'SUCCESS') {
  760 + return dst.data;
  761 + } else {
  762 + return dst; // 业务错误留给控制器处理
  763 + }
  764 + }
  765 + }
  766 + }
748 ) 767 )
749 }; 768 };
750 769
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/detailedit/form.html
@@ -106,7 +106,7 @@ @@ -106,7 +106,7 @@
106 <label class="col-md-2 control-label">站点路由版本类型*:</label> 106 <label class="col-md-2 control-label">站点路由版本类型*:</label>
107 <div class="col-md-4"> 107 <div class="col-md-4">
108 <sa-Select5 name="zdlytype" 108 <sa-Select5 name="zdlytype"
109 - model="ctrl.ttInfoDetailManageForForm" 109 + model="ctrl"
110 cmaps="{'zdlytype': 'value'}" 110 cmaps="{'zdlytype': 'value'}"
111 dcname="zdlytype" 111 dcname="zdlytype"
112 icname="value" 112 icname="value"
@@ -117,20 +117,24 @@ @@ -117,20 +117,24 @@
117 searchexp="this.name" 117 searchexp="this.name"
118 required > 118 required >
119 </sa-Select5> 119 </sa-Select5>
  120 + <input type="hidden" name="lineversion" ng-model="ctrl.ttInfoDetailManageForForm.lineversion" required/>
120 </div> 121 </div>
121 <!-- 隐藏快,显示验证信息 --> 122 <!-- 隐藏快,显示验证信息 -->
122 <div class="alert alert-danger well-sm" ng-show="myForm.zdlytype.$error.required"> 123 <div class="alert alert-danger well-sm" ng-show="myForm.zdlytype.$error.required">
123 请选择站点路由版本类型 124 请选择站点路由版本类型
124 </div> 125 </div>
  126 + <div class="alert alert-danger well-sm" ng-show="myForm.lineversion.$error.required">
  127 + 未知线路版本
  128 + </div>
125 </div> 129 </div>
126 130
127 - <div class="form-group has-success has-feedback" ng-if="ctrl.ttInfoDetailManageForForm.zdlytype == 2"> 131 + <div class="form-group has-success has-feedback" ng-if="ctrl.zdlytype == 2">
128 <label class="col-md-2 control-label">最近版本列表*:</label> 132 <label class="col-md-2 control-label">最近版本列表*:</label>
129 <div class="col-md-4"> 133 <div class="col-md-4">
130 - <sa-Select5 name="zdlyversion" 134 + <sa-Select5 name="lineversion_sel"
131 model="ctrl.ttInfoDetailManageForForm" 135 model="ctrl.ttInfoDetailManageForForm"
132 - cmaps="{'zdlyversion' : 'version'}"  
133 - dcname="zdlyversion" 136 + cmaps="{'lineversion' : 'version'}"
  137 + dcname="lineversion"
134 icname="version" 138 icname="version"
135 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.ttInfoDetailManageForForm.xlid}, atype:'rs_version_list' } | json }}" 139 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.ttInfoDetailManageForForm.xlid}, atype:'rs_version_list' } | json }}"
136 iterobjname="item" 140 iterobjname="item"
@@ -139,8 +143,9 @@ @@ -139,8 +143,9 @@
139 searchexp="this.desc" 143 searchexp="this.desc"
140 required > 144 required >
141 </sa-Select5> 145 </sa-Select5>
  146 +
142 </div> 147 </div>
143 - <div class="alert alert-danger well-sm" ng-show="myForm.zdlyversion.$error.required"> 148 + <div class="alert alert-danger well-sm" ng-show="myForm.lineversion_sel.$error.required">
144 必须选择版本列表 149 必须选择版本列表
145 </div> 150 </div>
146 </div> 151 </div>
@@ -168,8 +173,7 @@ @@ -168,8 +173,7 @@
168 'sheetname': ctrl.ttInfoDetailManageForForm.sheetname, 173 'sheetname': ctrl.ttInfoDetailManageForForm.sheetname,
169 'lineid' : ctrl.ttInfoDetailManageForForm.xlid, 174 'lineid' : ctrl.ttInfoDetailManageForForm.xlid,
170 'linename' : ctrl.ttInfoDetailManageForForm.xlname, 175 'linename' : ctrl.ttInfoDetailManageForForm.xlname,
171 - 'zdlytype': ctrl.ttInfoDetailManageForForm.zdlytype,  
172 - 'zdlyversion' : ctrl.ttInfoDetailManageForForm.zdlyversion 176 + 'lineversion' : ctrl.ttInfoDetailManageForForm.lineversion
173 } | json}}"/> 177 } | json}}"/>
174 </div> 178 </div>
175 <!-- 隐藏块,显示验证信息 --> 179 <!-- 隐藏块,显示验证信息 -->
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/detailedit/module.js
@@ -3,7 +3,8 @@ angular.module(&#39;ScheduleApp&#39;).factory( @@ -3,7 +3,8 @@ angular.module(&#39;ScheduleApp&#39;).factory(
3 'TtInfoDetailManageService', 3 'TtInfoDetailManageService',
4 [ 4 [
5 'TimeTableDetailManageService_g', 5 'TimeTableDetailManageService_g',
6 - function(service) { 6 + 'TTInfoManageService_g',
  7 + function(service, service2) {
7 // TODO: 8 // TODO:
8 9
9 return { 10 return {
@@ -17,6 +18,16 @@ angular.module(&#39;ScheduleApp&#39;).factory( @@ -17,6 +18,16 @@ angular.module(&#39;ScheduleApp&#39;).factory(
17 getEditInfo: function(xlid, ttid) { 18 getEditInfo: function(xlid, ttid) {
18 var params = {xlid : xlid, ttid : ttid}; 19 var params = {xlid : xlid, ttid : ttid};
19 return service.edit.list(params).$promise; 20 return service.edit.list(params).$promise;
  21 + },
  22 + /**
  23 + * 获取当前线路版本。
  24 + * @param xlid
  25 + * @returns {*|Function|promise|n}
  26 + */
  27 + getCurrentLineVersion: function(xlid) {
  28 + var params = {'lineId': xlid, 'status': 1};
  29 + return service2.lineverions.list(params).$promise;
  30 +
20 } 31 }
21 }; 32 };
22 } 33 }
@@ -31,7 +42,8 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -31,7 +42,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
31 'FileUploader', 42 'FileUploader',
32 '$stateParams', 43 '$stateParams',
33 '$state', 44 '$state',
34 - function(service, FileUploader, $stateParams, $state) { 45 + '$scope',
  46 + function(service, FileUploader, $stateParams, $state, $scope) {
35 var self = this; 47 var self = this;
36 var xlid = $stateParams.xlid; 48 var xlid = $stateParams.xlid;
37 var ttid = $stateParams.ttid; 49 var ttid = $stateParams.ttid;
@@ -40,10 +52,35 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -40,10 +52,35 @@ angular.module(&#39;ScheduleApp&#39;).controller(
40 52
41 self.title = xlname + '(' + ttname + ')' + '时刻表明细信息excel数据导入'; 53 self.title = xlname + '(' + ttname + ')' + '时刻表明细信息excel数据导入';
42 54
  55 + // 站点路由选择类型
  56 + self.zdlytype = 1;
  57 +
  58 + $scope.$watch(
  59 + function() {
  60 + return self.zdlytype;
  61 + },
  62 + function(n, o) {
  63 + if (n == 1) {
  64 + // 初始获取线路当前版本
  65 + service.getCurrentLineVersion(xlid).then(
  66 + function(result) {
  67 + if (result.length == 0) {
  68 + alert("没有线路当前版本");
  69 + } else if (result.length > 1) {
  70 + alert("有多个线路当前版本");
  71 + } else {
  72 + self.ttInfoDetailManageForForm.lineversion = result[0].version;
  73 + }
  74 + }
  75 + );
  76 + }
  77 + },
  78 + true
  79 + );
  80 +
43 // 欲保存的表单信息,双向绑定 81 // 欲保存的表单信息,双向绑定
44 self.ttInfoDetailManageForForm = { 82 self.ttInfoDetailManageForForm = {
45 - zdlytype: 1, // 站点路由类型  
46 - zdlyversion: -1, // 站点路由版本 83 + lineversion: undefined, // 线路版本
47 xlid: xlid, // 线路id 84 xlid: xlid, // 线路id
48 ttid: ttid, // 时刻表id 85 ttid: ttid, // 时刻表id
49 xlname: xlname, // 线路名称 86 xlname: xlname, // 线路名称
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/service.js
@@ -71,6 +71,25 @@ angular.module(&#39;ScheduleApp&#39;).factory( @@ -71,6 +71,25 @@ angular.module(&#39;ScheduleApp&#39;).factory(
71 } 71 }
72 } 72 }
73 } 73 }
  74 + ),
  75 +
  76 + lineverions: $resource(
  77 + '/tic_ec/versiondesc2/:lineId/:status',
  78 + {},
  79 + {
  80 + list: {
  81 + method: 'GET',
  82 + isArray: true,
  83 + transformResponse: function(rs) {
  84 + var dst = angular.fromJson(rs);
  85 + if (dst.status == 'SUCCESS') {
  86 + return dst.data;
  87 + } else {
  88 + return dst; // 业务错误留给控制器处理
  89 + }
  90 + }
  91 + }
  92 + }
74 ) 93 )
75 }; 94 };
76 95