Commit b292d514f7108473edef2d7fa153521165a401fe

Authored by ljq
1 parent 039f5e9f

20223-10-22

@@ -426,25 +426,6 @@ @@ -426,25 +426,6 @@
426 426
427 <build> 427 <build>
428 <plugins> 428 <plugins>
429 - <plugin>  
430 - <artifactId>maven-compiler-plugin</artifactId>  
431 - <version>2.3.2</version><!--$NO-MVN-MAN-VER$ -->  
432 - <configuration>  
433 - <source>1.8</source>  
434 - <target>1.8</target>  
435 - </configuration>  
436 - </plugin>  
437 - <plugin>  
438 - <artifactId>maven-war-plugin</artifactId>  
439 - <version>2.2</version><!--$NO-MVN-MAN-VER$ -->  
440 - <configuration>  
441 - <failOnMissingWebXml>false</failOnMissingWebXml>  
442 - </configuration>  
443 - </plugin>  
444 - <plugin>  
445 - <groupId>org.springframework.boot</groupId>  
446 - <artifactId>spring-boot-maven-plugin</artifactId>  
447 - </plugin>  
448 <plugin> 429 <plugin>
449 <groupId>org.codehaus.mojo</groupId> 430 <groupId>org.codehaus.mojo</groupId>
450 <artifactId>jaxb2-maven-plugin</artifactId> 431 <artifactId>jaxb2-maven-plugin</artifactId>
src/main/java/com/bsth/entity/subject/Subject.java
@@ -21,6 +21,8 @@ public class Subject { @@ -21,6 +21,8 @@ public class Subject {
21 private String dir; 21 private String dir;
22 //应对答案 22 //应对答案
23 private String answer; 23 private String answer;
  24 +
  25 + private String schStatus;
24 26
25 public String getSubjectText() { 27 public String getSubjectText() {
26 return subjectText; 28 return subjectText;
@@ -70,4 +72,12 @@ public class Subject { @@ -70,4 +72,12 @@ public class Subject {
70 public void setAnswer(String answer) { 72 public void setAnswer(String answer) {
71 this.answer = answer; 73 this.answer = answer;
72 } 74 }
  75 +
  76 + public String getSchStatus() {
  77 + return schStatus;
  78 + }
  79 +
  80 + public void setSchStatus(String schStatus) {
  81 + this.schStatus = schStatus;
  82 + }
73 } 83 }
src/main/java/com/bsth/entity/subject/SubjectUser.java
1 package com.bsth.entity.subject; 1 package com.bsth.entity.subject;
2 2
  3 +import com.bsth.entity.schedule.BEntity;
  4 +
3 import javax.persistence.*; 5 import javax.persistence.*;
  6 +import java.io.Serializable;
  7 +import java.util.Date;
4 8
5 @Entity 9 @Entity
6 @Table(name = "bsth_subject_user") 10 @Table(name = "bsth_subject_user")
@@ -20,6 +24,22 @@ public class SubjectUser { @@ -20,6 +24,22 @@ public class SubjectUser {
20 //题库id 24 //题库id
21 @ManyToOne 25 @ManyToOne
22 private Subject subjectId; 26 private Subject subjectId;
  27 +
  28 +
  29 +
  30 + // 创建人
  31 + private Integer createBy;
  32 +
  33 + // 修改人
  34 + private Integer updateBy;
  35 +
  36 + /** 创建日期 timestamp */
  37 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  38 + private Date createDate;
  39 +
  40 + /** 修改日期 timestamp */
  41 + @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  42 + private Date updateDate;
23 43
24 public Integer getId() { 44 public Integer getId() {
25 return id; 45 return id;
@@ -61,5 +81,35 @@ public class SubjectUser { @@ -61,5 +81,35 @@ public class SubjectUser {
61 this.result = result; 81 this.result = result;
62 } 82 }
63 83
64 - 84 + public Integer getCreateBy() {
  85 + return createBy;
  86 + }
  87 +
  88 + public void setCreateBy(Integer createBy) {
  89 + this.createBy = createBy;
  90 + }
  91 +
  92 + public Integer getUpdateBy() {
  93 + return updateBy;
  94 + }
  95 +
  96 + public void setUpdateBy(Integer updateBy) {
  97 + this.updateBy = updateBy;
  98 + }
  99 +
  100 + public Date getCreateDate() {
  101 + return createDate;
  102 + }
  103 +
  104 + public void setCreateDate(Date createDate) {
  105 + this.createDate = createDate;
  106 + }
  107 +
  108 + public Date getUpdateDate() {
  109 + return updateDate;
  110 + }
  111 +
  112 + public void setUpdateDate(Date updateDate) {
  113 + this.updateDate = updateDate;
  114 + }
65 } 115 }
src/main/java/com/bsth/repository/subject/SubjectUserRepository.java
@@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.Modifying; @@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.Modifying;
6 import org.springframework.data.jpa.repository.Query; 6 import org.springframework.data.jpa.repository.Query;
7 import org.springframework.transaction.annotation.Transactional; 7 import org.springframework.transaction.annotation.Transactional;
8 8
  9 +import java.util.Date;
9 import java.util.List; 10 import java.util.List;
10 11
11 public interface SubjectUserRepository extends BaseRepository<SubjectUser, Integer> { 12 public interface SubjectUserRepository extends BaseRepository<SubjectUser, Integer> {
@@ -16,6 +17,6 @@ public interface SubjectUserRepository extends BaseRepository&lt;SubjectUser, Integ @@ -16,6 +17,6 @@ public interface SubjectUserRepository extends BaseRepository&lt;SubjectUser, Integ
16 List<SubjectUser> userAll(String rq, Integer userId); 17 List<SubjectUser> userAll(String rq, Integer userId);
17 @Transactional 18 @Transactional
18 @Modifying 19 @Modifying
19 - @Query(value = "update SubjectUser su set su.result =?1 where su.id =?2")  
20 - int updates(String rq, Integer userId); 20 + @Query(value = "update SubjectUser su set su.result =?1,su.updateBy = ?2,su.updateDate = ?3 where su.id =?4")
  21 + int updates(String rq, Integer id, Date updateDate, Integer userId);
21 } 22 }
src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
@@ -221,7 +221,8 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen @@ -221,7 +221,8 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
221 else 221 else
222 d60.setSender("系统"); 222 d60.setSender("系统");
223 // 发送指令 223 // 发送指令
224 - int code = GatewayHttpUtils.postJson(JSON.toJSONString(d60)); 224 + int code = 0;
  225 + //GatewayHttpUtils.postJson(JSON.toJSONString(d60));
225 // 添加到缓存,等待入库 226 // 添加到缓存,等待入库
226 d60.setHttpCode(code); 227 d60.setHttpCode(code);
227 228
@@ -229,9 +230,9 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen @@ -229,9 +230,9 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
229 if(null != gps) 230 if(null != gps)
230 d60.setLineCode(gps.getLineId()); 231 d60.setLineCode(gps.getLineId());
231 232
232 - if (code != 0) 233 + /*if (code != 0)
233 d60.setErrorText("网关通讯失败, code: " + code); 234 d60.setErrorText("网关通讯失败, code: " + code);
234 - 235 +*/
235 dayOfDirectives.put60(d60); 236 dayOfDirectives.put60(d60);
236 return code; 237 return code;
237 } 238 }
src/main/java/com/bsth/service/subject/impl/SubjectUserServiceImpl.java
@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service; @@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
16 16
17 import java.text.SimpleDateFormat; 17 import java.text.SimpleDateFormat;
18 import java.util.*; 18 import java.util.*;
  19 +import java.util.stream.Collectors;
19 20
20 @Service 21 @Service
21 public class SubjectUserServiceImpl extends BaseServiceImpl<SubjectUser, Integer> implements SubjectUserService { 22 public class SubjectUserServiceImpl extends BaseServiceImpl<SubjectUser, Integer> implements SubjectUserService {
@@ -60,11 +61,21 @@ public class SubjectUserServiceImpl extends BaseServiceImpl&lt;SubjectUser, Integer @@ -60,11 +61,21 @@ public class SubjectUserServiceImpl extends BaseServiceImpl&lt;SubjectUser, Integer
60 String type = sur.getSubjectId().getType(); 61 String type = sur.getSubjectId().getType();
61 //判断答题是否正确 62 //判断答题是否正确
62 subEnum sjm = subEnum.valueOf(type); 63 subEnum sjm = subEnum.valueOf(type);
63 - String result = sjm.run(sur,sch) == true ? "0" : "1"; 64 + String result;
  65 + if (sur.getSubjectId().getSchStatus().equals("0")){
  66 + List<ScheduleRealInfo> sh = sch.stream().filter(s -> s.getXlDir().equals(sur.getSubjectId().getDir())).collect(Collectors.toList());
  67 + result = sjm.run(sur,sh) == true ? "0" : "1";
  68 + }else {
  69 + result = sjm.run(sur,sch) == true ? "0" : "1";
  70 + }
  71 +
  72 + SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
  73 + Date date = new Date();
  74 + // 修改日期
  75 + String updateDate = formatter.format(date);
64 76
65 //修改答案 77 //修改答案
66 - int status = subjectUserRepository.updates(result,id);  
67 - 78 + int status = subjectUserRepository.updates(result,user.getId(),date,id);
68 //List list = subjectUserRepository.userAll(sur.getRq(),sur.getUserId()); 79 //List list = subjectUserRepository.userAll(sur.getRq(),sur.getUserId());
69 // map.put("result",result); 80 // map.put("result",result);
70 //map.put("list",list); 81 //map.put("list",list);
src/main/java/com/bsth/util/subject/subEnum.java
1 package com.bsth.util.subject; 1 package com.bsth.util.subject;
2 2
  3 +import com.bsth.data.schedule.ScheduleComparator;
  4 +import com.bsth.entity.realcontrol.ChildTaskPlan;
3 import com.bsth.entity.realcontrol.ScheduleRealInfo; 5 import com.bsth.entity.realcontrol.ScheduleRealInfo;
4 import com.bsth.entity.subject.SubjectUser; 6 import com.bsth.entity.subject.SubjectUser;
5 7
  8 +import java.text.SimpleDateFormat;
  9 +import java.util.Collections;
  10 +import java.util.Comparator;
6 import java.util.List; 11 import java.util.List;
  12 +import java.util.Set;
7 import java.util.stream.Collectors; 13 import java.util.stream.Collectors;
8 14
9 public enum subEnum { 15 public enum subEnum {
  16 +
  17 +
10 //判断待发 18 //判断待发
11 df{ 19 df{
12 @Override 20 @Override
13 public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){ 21 public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
14 String sj = sur.getSubjectId().getFcsj();//计划发车时间 22 String sj = sur.getSubjectId().getFcsj();//计划发车时间
15 String answer = sur.getSubjectId().getAnswer();//待发是按 23 String answer = sur.getSubjectId().getAnswer();//待发是按
16 - String dir = sur.getSubjectId().getDir();//  
17 - //筛选满足条件的情况下  
18 - //List<ScheduleRealInfo> sh = sch.stream().filter(s -> s.getXlDir().equals(dir)).collect(Collectors.toList());  
19 //判断结果是否合格 24 //判断结果是否合格
20 for (ScheduleRealInfo s : sch) { 25 for (ScheduleRealInfo s : sch) {
21 if (s.getFcsj().equals(sj) && 26 if (s.getFcsj().equals(sj) &&
22 - s.getXlDir().equals(dir) &&  
23 s.getDfsj().equals(answer)) { 27 s.getDfsj().equals(answer)) {
24 return true; 28 return true;
25 } 29 }
@@ -34,13 +38,9 @@ public enum subEnum { @@ -34,13 +38,9 @@ public enum subEnum {
34 String sj = sur.getSubjectId().getFcsj();//计划发车时间 38 String sj = sur.getSubjectId().getFcsj();//计划发车时间
35 String answer = sur.getSubjectId().getAnswer();//答案 39 String answer = sur.getSubjectId().getAnswer();//答案
36 String[] t = answer.split(","); //0 计划里程 1 是否烂班状态 2烂班原因 40 String[] t = answer.split(","); //0 计划里程 1 是否烂班状态 2烂班原因
37 - String dir = sur.getSubjectId().getDir();//  
38 - //筛选满足条件的情况下  
39 - //List<ScheduleRealInfo> sh = sch.stream().filter(s -> s.getXlDir().equals(dir)).collect(Collectors.toList());  
40 //判断结果是否合格 41 //判断结果是否合格
41 for (ScheduleRealInfo s : sch) { 42 for (ScheduleRealInfo s : sch) {
42 if (s.getDfsj().equals(sj) && 43 if (s.getDfsj().equals(sj) &&
43 - s.getXlDir().equals(dir) &&  
44 s.getJhlc() == Double.parseDouble(t[0]) && 44 s.getJhlc() == Double.parseDouble(t[0]) &&
45 s.getStatus() == Integer.parseInt(t[1]) && 45 s.getStatus() == Integer.parseInt(t[1]) &&
46 s.getRemarks().contains(t[2])) { 46 s.getRemarks().contains(t[2])) {
@@ -58,10 +58,11 @@ public enum subEnum { @@ -58,10 +58,11 @@ public enum subEnum {
58 String answer = sur.getSubjectId().getAnswer();//答案 58 String answer = sur.getSubjectId().getAnswer();//答案
59 String[] t = answer.split(","); //0 是否烂班状态 1是否烂班过 59 String[] t = answer.split(","); //0 是否烂班状态 1是否烂班过
60 String dir = sur.getSubjectId().getDir();// 60 String dir = sur.getSubjectId().getDir();//
  61 + //筛选满足条件的情况的班次
  62 + List<ScheduleRealInfo> sh = sch.stream().filter(s -> s.getXlDir().equals(dir)).collect(Collectors.toList());
61 //判断结果是否合格 63 //判断结果是否合格
62 for (ScheduleRealInfo s : sch) { 64 for (ScheduleRealInfo s : sch) {
63 if (s.getDfsj().equals(sj) && 65 if (s.getDfsj().equals(sj) &&
64 - s.getXlDir().equals(dir) &&  
65 s.getStatus() == Integer.parseInt(t[0]) && 66 s.getStatus() == Integer.parseInt(t[0]) &&
66 t[1].equals(s.getAdjustExps())) { 67 t[1].equals(s.getAdjustExps())) {
67 return true; 68 return true;
@@ -75,19 +76,392 @@ public enum subEnum { @@ -75,19 +76,392 @@ public enum subEnum {
75 public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){ 76 public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
76 String sj = sur.getSubjectId().getFcsj();//计划发车时间 77 String sj = sur.getSubjectId().getFcsj();//计划发车时间
77 String answer = sur.getSubjectId().getAnswer();//答案 78 String answer = sur.getSubjectId().getAnswer();//答案
78 - String[] t = answer.split(","); //0 计划里程  
79 - String dir = sur.getSubjectId().getDir();//  
80 - //筛选满足条件的情况下  
81 - List<ScheduleRealInfo> sh = sch.stream().filter(s -> s.getXlDir().equals(dir)).collect(Collectors.toList()); 79 + String[] t = answer.split(","); //0 里程是否清0 1 是否烂班状态 2烂班原因3.班次间隔时间
  80 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  81 + //排序
  82 + Collections.sort(sch, new ScheduleComparator.DFSJ2());
  83 + int su = 0;
  84 + try{
  85 + //判断结果是否合格
  86 + int sunm = 0;
  87 + for (int i = 0; i < sch.size(); i++) {
  88 + ScheduleRealInfo s = sch.get(i);
  89 + //判断当前班次是否符合条件
  90 + if (s.getDfsj().equals(sj) &&
  91 + s.getJhlc() == Double.parseDouble(t[0]) &&
  92 + s.getStatus() == Integer.parseInt(t[1]) &&
  93 + s.getRemarks().contains(t[2])) {
  94 + su = i;
  95 + }
  96 +
  97 + //判断后续三个班次的dfsj修改成功 n烂班 n-1 与 n+1 n+1与n+2
  98 + if (su != 0 && i > su && i <= su + 3){
  99 + if (i == su +1){ //烂班下第一个
  100 + Long stn = sdf.parse(sch.get(i).getDfsj()).getTime() - sdf.parse(sch.get(i-2).getDfsj()).getTime();
  101 + int stg = stn.intValue() / 60 / 1000;
  102 + sunm = stg == Integer.parseInt(t[3]) ? sunm + 1 : sunm; //班次调整间隔时间 40/4 40/3
  103 + }else {
  104 + Long stn = sdf.parse(sch.get(i).getDfsj()).getTime() - sdf.parse(sch.get(i-1).getDfsj()).getTime();
  105 + int stg = stn.intValue() / 60 / 1000;
  106 + sunm = stg == Integer.parseInt(t[3]) ? sunm + 1 : sunm; //班次调整间隔时间
  107 + }
  108 + }
  109 + }
  110 + //3个班次都正确
  111 + if (sunm == 3){
  112 + return true;
  113 + }
  114 + }catch (Exception e){
  115 + e.printStackTrace();
  116 + }
  117 +
  118 + return false;
  119 + }
  120 + }, //判断烂班
  121 + //实发
  122 + sf{
  123 + @Override
  124 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
  125 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  126 + String answer = sur.getSubjectId().getAnswer();//答案
  127 + String[] t = answer.split(","); //0 实发时间 1调整说明
82 //判断结果是否合格 128 //判断结果是否合格
83 for (ScheduleRealInfo s : sch) { 129 for (ScheduleRealInfo s : sch) {
84 - 130 + if (s.getDfsj().equals(sj) &&
  131 + t[0].equals(s.getFcsjActual()) &&
  132 + s.getRemarks().contains(t[1])) {
  133 + return true;
  134 + }
85 } 135 }
86 return false; 136 return false;
87 } 137 }
88 - }; 138 + },
  139 + //撤销实发
  140 + csf {
  141 + @Override
  142 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch) {
  143 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  144 + String answer = sur.getSubjectId().getAnswer();//答案
  145 + String[] t = answer.split(","); //0 调整说明
  146 + //判断结果是否合格
  147 + for (ScheduleRealInfo s : sch) {
  148 + if (s.getDfsj().equals(sj) &&
  149 + s.getFcsjActual() == null &&
  150 + s.getRemarks() != null &&
  151 + s.getRemarks().contains(t[0])) {
  152 + return true;
  153 + }
  154 + }
  155 + return false;
  156 + }
  157 + },
  158 + //直放
  159 + zf {
  160 + @Override
  161 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch) {
  162 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  163 + String answer = sur.getSubjectId().getAnswer();//答案
  164 + String[] t = answer.split(","); //0 放站
  165 + //判断结果是否合格
  166 + for (ScheduleRealInfo s : sch) {
  167 + if (s.getDfsj().equals(sj) &&
  168 + s.getBcType().equals(t[0])) {
  169 + return true;
  170 + }
  171 + }
  172 + return false;
  173 + }
  174 + },
  175 + //直放
  176 + fz {
  177 + @Override
  178 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch) {
  179 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  180 + String answer = sur.getSubjectId().getAnswer();//答案
  181 + String[] t = answer.split(","); //0 放站 1备注-是不是龙阳路地铁站
  182 + //判断结果是否合格
  183 + for (ScheduleRealInfo s : sch) {
  184 + if (s.getDfsj().equals(sj) &&
  185 + s.getBcType().equals(t[0]) &&
  186 + s.getRemarks() != null &&
  187 + s.getRemarks().contains(t[1])) {
  188 + return true;
  189 + }
  190 + }
  191 + return false;
  192 + }
  193 + },
  194 + //直放
  195 + zrw {
  196 + @Override
  197 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch) {
  198 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  199 + String answer = sur.getSubjectId().getAnswer();//答案
  200 + String[] t = answer.split(","); //0 放站 1备注-是不是龙阳路地铁站
  201 + //判断结果是否合格
  202 + for (ScheduleRealInfo s : sch) {
  203 + if (s.getDfsj().equals(sj)) {
  204 + //涉及到子任务
  205 + Set<ChildTaskPlan> ctaks = s.getcTasks();
  206 + //ctaks.size() == 2
  207 + Float lc = 0f; //统计营运里程
  208 + int sn = 0;//是否两个班次都符合条件
  209 + //判断子任务是否符合条件
  210 + for (ChildTaskPlan p : ctaks){
  211 + lc = lc + p.getMileage();
  212 + if ((p.getEndStationName().equals(t[0]) && p.isDestroy() == false ) ||
  213 + (p.getStartStationName().equals(t[0]) && p.getDestroyReason().equals(t[1]) && p.isDestroy() == true)){
  214 + sn = sn + 1;
  215 + }
  216 + }
  217 + //判断子任务里程数和班次里程数是否一样 && 满足两个班次
  218 + if (lc == s.getJhlc().floatValue() && sn == 2) {
  219 + return true;
  220 + }
  221 +
  222 + }
  223 + }
  224 + return false;
  225 + }
  226 +
  227 + },
  228 + //临加班次
  229 + ljbc{
  230 + @Override
  231 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
  232 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  233 + String answer = sur.getSubjectId().getAnswer();//答案
  234 + String[] t = answer.split(","); //0
  235 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  236 + //排序
  237 + Collections.sort(sch, new ScheduleComparator.DFSJ2());
  238 + int su = 0;
  239 + try{
  240 + //判断结果是否合格
  241 + String df = "";
  242 + for (int i = 0; i < sch.size(); i++) {
  243 + ScheduleRealInfo s = sch.get(i);
  244 +
  245 + //判断当前班次是否符合条件 1.是否临加
  246 + if (s.getDfsj().equals(sj)) {
  247 + Long stn = sdf.parse(s.getDfsj()).getTime() + Long.parseLong(t[0]) * 60 * 1000;
  248 + df =sdf.format(stn);
  249 + }
  250 + //判断是否有这个临加班次
  251 + if (s.getDfsj().equals(df) && s.getClZbh().contains(t[1]) && s.isSflj() == true) {
  252 + return true;
  253 + }
  254 +
  255 + }
  256 + }catch (Exception e){
  257 + e.printStackTrace();
  258 + }
  259 +
  260 + return false;
  261 + }
  262 + },
  263 + //临加班次 往返班次
  264 + ljbc_wf{
  265 + @Override
  266 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
  267 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  268 + String answer = sur.getSubjectId().getAnswer();//答案
  269 + String[] t = answer.split(","); //0
  270 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  271 + //排序
  272 + Collections.sort(sch, new ScheduleComparator.DFSJ2());
  273 + int su = 0;
  274 + try{
  275 + //判断结果是否合格
  276 + String df = "";
  277 + String dfsj ="";
  278 + for (int i = 0; i < sch.size(); i++) {
  279 + ScheduleRealInfo s = sch.get(i);
89 280
  281 + //判断当前班次是否符合条件 全部班次
  282 + if (s.getDfsj().equals(sj) && s.getXlDir().equals(sur.getSubjectId().getDir())) {
  283 + Long stn = sdf.parse(s.getDfsj()).getTime() + Long.parseLong(t[0]) * 60 * 1000;
  284 + df =sdf.format(stn);
  285 + }
  286 + //判断是否有这个临加班次
  287 + if (s.getDfsj().equals(df) && s.getClZbh().contains(t[1]) && s.isSflj() == true) {
  288 + dfsj =s.getZdsj();
  289 + }
  290 + if(s.getDfsj().equals(dfsj) && s.isSflj() == true){
  291 + return true;
  292 + }
  293 +
90 294
  295 + }
  296 + }catch (Exception e){
  297 + e.printStackTrace();
  298 + }
91 299
  300 + return false;
  301 + }
  302 + },
  303 + //临加班次 场到场
  304 + ljbc_cdc{
  305 + @Override
  306 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
  307 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  308 + String answer = sur.getSubjectId().getAnswer();//答案
  309 + String[] t = answer.split(","); //0
  310 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  311 + //排序
  312 + Collections.sort(sch, new ScheduleComparator.DFSJ2());
  313 + int su = 0;
  314 + try{
  315 + //判断结果是否合格
  316 + Integer nts = 0;
  317 + String dfsj ="";
  318 + for (int i = 0; i < sch.size(); i++) {
  319 + ScheduleRealInfo s = sch.get(i);
  320 + //判断当前班次是否符合条件 全部班次
  321 + if ( s.getBcType().equals(t[0]) && s.isSflj() == true && s.getClZbh().equals(t[2]) &&
  322 + (s.getDfsj().equals(sj) || s.getDfsj().equals(t[1]) )) {
  323 + if((s.getQdzName().equals(t[3]) && s.getZdzName().equals(t[4]) ) ||
  324 + s.getQdzName().equals(t[4]) && s.getZdzName().equals(t[3])){
  325 + nts++;
  326 + }
  327 + }
  328 + }
  329 + if(nts == 2){
  330 + return true;
  331 + }
  332 +
  333 + }catch (Exception e){
  334 + e.printStackTrace();
  335 + }
  336 +
  337 + return false;
  338 + }
  339 + },
  340 + //临加班次 场到场
  341 + lp{
  342 + @Override
  343 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
  344 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  345 + String answer = sur.getSubjectId().getAnswer();//答案
  346 + String[] t = answer.split(","); //0
  347 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  348 + //排序
  349 + Collections.sort(sch, new ScheduleComparator.DFSJ2());
  350 + int su = 0;
  351 + try{
  352 + //判断结果是否合格
  353 + for (int i = 0; i < sch.size(); i++) {
  354 + ScheduleRealInfo s = sch.get(i);
  355 + //判断当前班次是否符合条件 全部班次
  356 + if ( s.getDfsj().equals(sj) && s.getLpName().equals(t[0]) && s.isSflj() == true) {
  357 + return true;
  358 + }
  359 + }
  360 +
  361 + }catch (Exception e){
  362 + e.printStackTrace();
  363 + }
  364 +
  365 + return false;
  366 + }
  367 + },
  368 + //临加班次 场到场
  369 + j_gh{
  370 + @Override
  371 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
  372 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  373 + String answer = sur.getSubjectId().getAnswer();//答案
  374 + String[] t = answer.split(","); //0
  375 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  376 + //排序
  377 + Collections.sort(sch, new ScheduleComparator.DFSJ2());
  378 + int su = 0;
  379 + try{
  380 + //判断结果是否合格
  381 + for (int i = 0; i < sch.size(); i++) {
  382 + ScheduleRealInfo s = sch.get(i);
  383 + //判断当前班次是否符合条件 全部班次
  384 + if ( s.getDfsj().equals(sj) && s.getjGh().equals(t[0])) {
  385 + return true;
  386 + }
  387 + }
  388 +
  389 + }catch (Exception e){
  390 + e.printStackTrace();
  391 + }
  392 +
  393 + return false;
  394 + }
  395 + },
  396 + //换班
  397 + hb{
  398 + @Override
  399 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
  400 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  401 + String answer = sur.getSubjectId().getAnswer();//答案
  402 + String[] t = answer.split(","); //0
  403 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  404 + //排序
  405 + Collections.sort(sch, new ScheduleComparator.DFSJ2());
  406 + int su = 0;
  407 + try{
  408 + //判断结果是否合格
  409 + for (int i = 0; i < sch.size(); i++) {
  410 + ScheduleRealInfo s = sch.get(i);
  411 + //判断当前班次是否符合条件 全部班次
  412 + if ( s.getDfsj().equals(sj) && s.getjGh().equals(t[1])) {
  413 + su ++;
  414 + }
  415 +
  416 + if ( s.getDfsj().equals(t[2]) && s.getjGh().equals(t[0])) {
  417 + su ++;
  418 + }
  419 + }
  420 + if(su == 2)
  421 + return true;
  422 +
  423 +
  424 + }catch (Exception e){
  425 + e.printStackTrace();
  426 + }
  427 +
  428 + return false;
  429 + }
  430 + },
  431 + //批量修改待发
  432 + pdf{
  433 + @Override
  434 + public boolean run(SubjectUser sur, List<ScheduleRealInfo> sch){
  435 + String sj = sur.getSubjectId().getFcsj();//计划发车时间
  436 + String answer = sur.getSubjectId().getAnswer();//答案
  437 + String[] t = answer.split(","); //0
  438 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
  439 + //排序
  440 + Collections.sort(sch, new ScheduleComparator.DFSJ2());
  441 + int su = 0;
  442 + try{
  443 + //判断结果是否合格
  444 + for (int i = 0; i < sch.size(); i++) {
  445 + ScheduleRealInfo s = sch.get(i);
  446 + //判断当前班次是否符合条件
  447 + if ( s.getDfsj().equals(sj) && s.getjGh().equals(t[1])) {
  448 + su ++;
  449 + }
  450 +
  451 + if ( s.getDfsj().equals(t[2]) && s.getjGh().equals(t[0])) {
  452 + su ++;
  453 + }
  454 + }
  455 + if(su == 2)
  456 + return true;
  457 +
  458 +
  459 + }catch (Exception e){
  460 + e.printStackTrace();
  461 + }
  462 +
  463 + return false;
  464 + }
  465 + };
92 public abstract boolean run(SubjectUser sur, List<ScheduleRealInfo> sch); 466 public abstract boolean run(SubjectUser sur, List<ScheduleRealInfo> sch);
93 } 467 }
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/temp_sch/main.html
@@ -61,9 +61,9 @@ @@ -61,9 +61,9 @@
61 61
62 //init-autoCom 62 //init-autoCom
63 $(modal).on('init-autoCom', '.add-sch-form', function () { 63 $(modal).on('init-autoCom', '.add-sch-form', function () {
64 - //车辆 64 + /*//车辆
65 if(carsArray) 65 if(carsArray)
66 - gb_common.carAutocomplete($('.car-autocom', this), carsArray); 66 + gb_common.carAutocomplete($('.car-autocom', this), carsArray);*/
67 //驾驶员 67 //驾驶员
68 gb_common.personAutocomplete($('.jsy-autocom', this)); 68 gb_common.personAutocomplete($('.jsy-autocom', this));
69 //售票员 69 //售票员
src/main/resources/static/real_control_v2/js/home/context_menu.js
@@ -309,7 +309,25 @@ var gb_home_context_menu = (function() { @@ -309,7 +309,25 @@ var gb_home_context_menu = (function() {
309 'send_phrase_multi': { 309 'send_phrase_multi': {
310 name: '群发消息短语' 310 name: '群发消息短语'
311 }, 311 },
312 - 312 + 'sep1': '---------',
  313 + 'fold_state': {
  314 + name: '状态切换',
  315 + items: {
  316 + 'state_up_1': {
  317 + 'name': '上行非营运'
  318 + },
  319 + 'state_down_1': {
  320 + 'name': '下行非营运'
  321 + },
  322 + 'sep3_2': '---------',
  323 + 'state_up_0': {
  324 + 'name': '上行营运'
  325 + },
  326 + 'state_down_0': {
  327 + 'name': '下行营运'
  328 + }
  329 + }
  330 + },
313 } 331 }
314 }); 332 });
315 333
src/main/resources/static/real_control_v2/js/subject/subject.js
@@ -20,8 +20,10 @@ var su_subject = (function () { @@ -20,8 +20,10 @@ var su_subject = (function () {
20 var list = retunhtml(rs); 20 var list = retunhtml(rs);
21 21
22 $('.north_suject').remove(); 22 $('.north_suject').remove();
23 - if (list == null) 23 + if (list == null){
  24 + //otify_succ('全部题目已操作完成 请查看自己的成绩!');
24 return; //所有题目已经考完 无考题的情况 25 return; //所有题目已经考完 无考题的情况
  26 + }
25 27
26 var htmlStr = template('suject_pop_wrap', list); 28 var htmlStr = template('suject_pop_wrap', list);
27 $wrap.append(htmlStr); 29 $wrap.append(htmlStr);
@@ -34,9 +36,9 @@ var su_subject = (function () { @@ -34,9 +36,9 @@ var su_subject = (function () {
34 //判断答题是否正确 返回参数 返回下一题的情况 36 //判断答题是否正确 返回参数 返回下一题的情况
35 gb_common.$get('/subjectUser/determine', {id: id},function (rs) { 37 gb_common.$get('/subjectUser/determine', {id: id},function (rs) {
36 if (rs == 0){ //提示答题正确 38 if (rs == 0){ //提示答题正确
37 - 39 + notify_succ('答题正确!');
38 }else if(rs == 1){ //提示答题失败 40 }else if(rs == 1){ //提示答题失败
39 - 41 + notify_err('答题错误!');
40 }else { //系统出错 42 }else { //系统出错
41 43
42 } 44 }
src/main/resources/static/real_control_v2/main.html
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 场景:{{subjectId.subjectText}} 79 场景:{{subjectId.subjectText}}
80 </div> 80 </div>
81 <div class="north-tmx"> 81 <div class="north-tmx">
82 - 操作: {{subjectId.operateTest}} 82 + 操作:{{subjectId.operateTest}}
83 </div> 83 </div>
84 <div class="north-button"> 84 <div class="north-button">
85 <button id="submit" class="subject_button" data-id="{{id}}">提交</button> 85 <button id="submit" class="subject_button" data-id="{{id}}">提交</button>