Commit a5718c4c13792b7eb81cc79091f33d72426da4f4
Merge branch 'pudong' of 192.168.168.201:panzhaov5/bsth_control into
pudong
Showing
27 changed files
with
1044 additions
and
319 deletions
pom.xml
| @@ -295,6 +295,13 @@ | @@ -295,6 +295,13 @@ | ||
| 295 | <artifactId>jpinyin</artifactId> | 295 | <artifactId>jpinyin</artifactId> |
| 296 | <version>1.1.8</version> | 296 | <version>1.1.8</version> |
| 297 | </dependency> | 297 | </dependency> |
| 298 | + | ||
| 299 | + <!-- plan common工程依赖 --> | ||
| 300 | + <dependency> | ||
| 301 | + <groupId>com.bsth.control_v2</groupId> | ||
| 302 | + <artifactId>plan_module-common</artifactId> | ||
| 303 | + <version>1.0-SNAPSHOT</version> | ||
| 304 | + </dependency> | ||
| 298 | </dependencies> | 305 | </dependencies> |
| 299 | 306 | ||
| 300 | <dependencyManagement> | 307 | <dependencyManagement> |
src/main/java/com/bsth/entity/schedule/log/ModuleOperatorLog.java
0 → 100644
| 1 | +package com.bsth.entity.schedule.log; | ||
| 2 | + | ||
| 3 | +import com.bsth.control_v2.plan_module.common.enums.log.ModuleOperatorType; | ||
| 4 | +import com.bsth.control_v2.plan_module.common.enums.log.ModuleType; | ||
| 5 | +import com.bsth.control_v2.plan_module.common.enums.log.OperatorType; | ||
| 6 | +import com.bsth.entity.schedule.log.convert.ModuleOperatorTypeConverter; | ||
| 7 | +import com.bsth.entity.schedule.log.convert.ModuleTypeConverter; | ||
| 8 | +import com.bsth.entity.schedule.log.convert.OperatorTypeConverter; | ||
| 9 | + | ||
| 10 | +import javax.persistence.*; | ||
| 11 | +import java.io.Serializable; | ||
| 12 | +import java.util.Date; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * 模块业务操作日志。 | ||
| 16 | + */ | ||
| 17 | +@Entity | ||
| 18 | +@Table(name = "bsth_c_s_op_log") | ||
| 19 | +public class ModuleOperatorLog implements Serializable { | ||
| 20 | + | ||
| 21 | + /** 主键Id */ | ||
| 22 | + @Id | ||
| 23 | + @GeneratedValue | ||
| 24 | + private Long id; | ||
| 25 | + | ||
| 26 | + /** 日志插入时间 */ | ||
| 27 | + @Column(nullable = false) | ||
| 28 | + private Long timestmp; | ||
| 29 | + | ||
| 30 | + /** 模块类型 */ | ||
| 31 | + @Column(nullable = false) | ||
| 32 | + @Convert(converter = ModuleTypeConverter.class) | ||
| 33 | + private ModuleType moduleType; | ||
| 34 | + | ||
| 35 | + @Column(nullable = false) | ||
| 36 | + @Convert(converter = OperatorTypeConverter.class) | ||
| 37 | + private OperatorType operatorType; | ||
| 38 | + | ||
| 39 | + /** 模块操作类型 */ | ||
| 40 | + @Column(nullable = false) | ||
| 41 | + @Convert(converter = ModuleOperatorTypeConverter.class) | ||
| 42 | + private ModuleOperatorType moduleOperatorType; | ||
| 43 | + | ||
| 44 | + /** 日志描述 */ | ||
| 45 | + @Column(nullable = false) | ||
| 46 | + private String message; | ||
| 47 | + | ||
| 48 | + /** 日志级别 */ | ||
| 49 | + @Column(nullable = false) | ||
| 50 | + private String levelName; | ||
| 51 | + /** 模块业务操作开始时间 */ | ||
| 52 | + @Column(nullable = false) | ||
| 53 | + private Date opStartTime; | ||
| 54 | + /** 模块业务操作结束时间 */ | ||
| 55 | + @Column(nullable = false) | ||
| 56 | + private Date opEndTime; | ||
| 57 | + /** 模块业务操作人姓名 */ | ||
| 58 | + @Column(nullable = false) | ||
| 59 | + private String opUserName; | ||
| 60 | + /** 模块业务操作人工号 */ | ||
| 61 | + @Column(nullable = false) | ||
| 62 | + private String opUserCode; | ||
| 63 | + /** 关联的实体class名 */ | ||
| 64 | + @Column(nullable = false) | ||
| 65 | + private String opEntityClass; | ||
| 66 | + /** 操作前的实体json */ | ||
| 67 | + @Column(nullable = false) | ||
| 68 | + private String opBeforeJson; | ||
| 69 | + /** 操作后的实体json */ | ||
| 70 | + @Column(nullable = false) | ||
| 71 | + private String opAfterJson; | ||
| 72 | + | ||
| 73 | + /** 备用-可选参数1 */ | ||
| 74 | + private String optArg1; | ||
| 75 | + /** 备用-可选参数2 */ | ||
| 76 | + private String optArg2; | ||
| 77 | + /** 备用-可选参数3 */ | ||
| 78 | + private String optArg3; | ||
| 79 | + | ||
| 80 | + //------------- 客户端信息 -------------// | ||
| 81 | + /** 客户端Ip */ | ||
| 82 | + private String clientIp; | ||
| 83 | + /** 客户端游览器 */ | ||
| 84 | + private String clientBowser; | ||
| 85 | + /** 客户端主机信息 */ | ||
| 86 | + private String clientSystem; | ||
| 87 | + /** 获取mac地址 */ | ||
| 88 | + private String clientMacAddress; | ||
| 89 | + | ||
| 90 | + public Long getId() { | ||
| 91 | + return id; | ||
| 92 | + } | ||
| 93 | + | ||
| 94 | + public void setId(Long id) { | ||
| 95 | + this.id = id; | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + public Long getTimestmp() { | ||
| 99 | + return timestmp; | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + public void setTimestmp(Long timestmp) { | ||
| 103 | + this.timestmp = timestmp; | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | + public ModuleType getModuleType() { | ||
| 107 | + return moduleType; | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + public void setModuleType(ModuleType moduleType) { | ||
| 111 | + this.moduleType = moduleType; | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + public OperatorType getOperatorType() { | ||
| 115 | + return operatorType; | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + public void setOperatorType(OperatorType operatorType) { | ||
| 119 | + this.operatorType = operatorType; | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + public ModuleOperatorType getModuleOperatorType() { | ||
| 123 | + return moduleOperatorType; | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + public void setModuleOperatorType(ModuleOperatorType moduleOperatorType) { | ||
| 127 | + this.moduleOperatorType = moduleOperatorType; | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + public String getMessage() { | ||
| 131 | + return message; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + public void setMessage(String message) { | ||
| 135 | + this.message = message; | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + public String getLevelName() { | ||
| 139 | + return levelName; | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + public void setLevelName(String levelName) { | ||
| 143 | + this.levelName = levelName; | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + public Date getOpStartTime() { | ||
| 147 | + return opStartTime; | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + public void setOpStartTime(Date opStartTime) { | ||
| 151 | + this.opStartTime = opStartTime; | ||
| 152 | + } | ||
| 153 | + | ||
| 154 | + public Date getOpEndTime() { | ||
| 155 | + return opEndTime; | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + public void setOpEndTime(Date opEndTime) { | ||
| 159 | + this.opEndTime = opEndTime; | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + public String getOpUserName() { | ||
| 163 | + return opUserName; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + public void setOpUserName(String opUserName) { | ||
| 167 | + this.opUserName = opUserName; | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + public String getOpUserCode() { | ||
| 171 | + return opUserCode; | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + public void setOpUserCode(String opUserCode) { | ||
| 175 | + this.opUserCode = opUserCode; | ||
| 176 | + } | ||
| 177 | + | ||
| 178 | + public String getOpEntityClass() { | ||
| 179 | + return opEntityClass; | ||
| 180 | + } | ||
| 181 | + | ||
| 182 | + public void setOpEntityClass(String opEntityClass) { | ||
| 183 | + this.opEntityClass = opEntityClass; | ||
| 184 | + } | ||
| 185 | + | ||
| 186 | + public String getOpBeforeJson() { | ||
| 187 | + return opBeforeJson; | ||
| 188 | + } | ||
| 189 | + | ||
| 190 | + public void setOpBeforeJson(String opBeforeJson) { | ||
| 191 | + this.opBeforeJson = opBeforeJson; | ||
| 192 | + } | ||
| 193 | + | ||
| 194 | + public String getOpAfterJson() { | ||
| 195 | + return opAfterJson; | ||
| 196 | + } | ||
| 197 | + | ||
| 198 | + public void setOpAfterJson(String opAfterJson) { | ||
| 199 | + this.opAfterJson = opAfterJson; | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + public String getOptArg1() { | ||
| 203 | + return optArg1; | ||
| 204 | + } | ||
| 205 | + | ||
| 206 | + public void setOptArg1(String optArg1) { | ||
| 207 | + this.optArg1 = optArg1; | ||
| 208 | + } | ||
| 209 | + | ||
| 210 | + public String getOptArg2() { | ||
| 211 | + return optArg2; | ||
| 212 | + } | ||
| 213 | + | ||
| 214 | + public void setOptArg2(String optArg2) { | ||
| 215 | + this.optArg2 = optArg2; | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + public String getOptArg3() { | ||
| 219 | + return optArg3; | ||
| 220 | + } | ||
| 221 | + | ||
| 222 | + public void setOptArg3(String optArg3) { | ||
| 223 | + this.optArg3 = optArg3; | ||
| 224 | + } | ||
| 225 | + | ||
| 226 | + public String getClientIp() { | ||
| 227 | + return clientIp; | ||
| 228 | + } | ||
| 229 | + | ||
| 230 | + public void setClientIp(String clientIp) { | ||
| 231 | + this.clientIp = clientIp; | ||
| 232 | + } | ||
| 233 | + | ||
| 234 | + public String getClientBowser() { | ||
| 235 | + return clientBowser; | ||
| 236 | + } | ||
| 237 | + | ||
| 238 | + public void setClientBowser(String clientBowser) { | ||
| 239 | + this.clientBowser = clientBowser; | ||
| 240 | + } | ||
| 241 | + | ||
| 242 | + public String getClientSystem() { | ||
| 243 | + return clientSystem; | ||
| 244 | + } | ||
| 245 | + | ||
| 246 | + public void setClientSystem(String clientSystem) { | ||
| 247 | + this.clientSystem = clientSystem; | ||
| 248 | + } | ||
| 249 | + | ||
| 250 | + public String getClientMacAddress() { | ||
| 251 | + return clientMacAddress; | ||
| 252 | + } | ||
| 253 | + | ||
| 254 | + public void setClientMacAddress(String clientMacAddress) { | ||
| 255 | + this.clientMacAddress = clientMacAddress; | ||
| 256 | + } | ||
| 257 | +} |
src/main/java/com/bsth/entity/schedule/log/convert/ModuleOperatorTypeConverter.java
0 → 100644
| 1 | +package com.bsth.entity.schedule.log.convert; | ||
| 2 | + | ||
| 3 | +import com.bsth.control_v2.plan_module.common.enums.log.ModuleOperatorType; | ||
| 4 | + | ||
| 5 | +import javax.persistence.AttributeConverter; | ||
| 6 | +import javax.persistence.Convert; | ||
| 7 | + | ||
| 8 | +@Convert | ||
| 9 | +public class ModuleOperatorTypeConverter implements AttributeConverter<ModuleOperatorType, String> { | ||
| 10 | + @Override | ||
| 11 | + public String convertToDatabaseColumn(ModuleOperatorType attribute) { | ||
| 12 | + return attribute.getDicDesc(); | ||
| 13 | + } | ||
| 14 | + | ||
| 15 | + @Override | ||
| 16 | + public ModuleOperatorType convertToEntityAttribute(String dbData) { | ||
| 17 | + return ModuleOperatorType.fromDicDesc(dbData); | ||
| 18 | + } | ||
| 19 | +} |
src/main/java/com/bsth/entity/schedule/log/convert/ModuleTypeConverter.java
0 → 100644
| 1 | +package com.bsth.entity.schedule.log.convert; | ||
| 2 | + | ||
| 3 | +import com.bsth.control_v2.plan_module.common.enums.log.ModuleType; | ||
| 4 | + | ||
| 5 | +import javax.persistence.AttributeConverter; | ||
| 6 | +import javax.persistence.Convert; | ||
| 7 | + | ||
| 8 | +@Convert | ||
| 9 | +public class ModuleTypeConverter implements AttributeConverter<ModuleType, String> { | ||
| 10 | + @Override | ||
| 11 | + public String convertToDatabaseColumn(ModuleType attribute) { | ||
| 12 | + return attribute.getDicDesc(); | ||
| 13 | + } | ||
| 14 | + | ||
| 15 | + @Override | ||
| 16 | + public ModuleType convertToEntityAttribute(String dbData) { | ||
| 17 | + return ModuleType.fromDicDesc(dbData); | ||
| 18 | + } | ||
| 19 | +} |
src/main/java/com/bsth/entity/schedule/log/convert/OperatorTypeConverter.java
0 → 100644
| 1 | +package com.bsth.entity.schedule.log.convert; | ||
| 2 | + | ||
| 3 | +import com.bsth.control_v2.plan_module.common.enums.log.OperatorType; | ||
| 4 | + | ||
| 5 | +import javax.persistence.AttributeConverter; | ||
| 6 | +import javax.persistence.Convert; | ||
| 7 | + | ||
| 8 | +@Convert | ||
| 9 | +public class OperatorTypeConverter implements AttributeConverter<OperatorType, String> { | ||
| 10 | + @Override | ||
| 11 | + public String convertToDatabaseColumn(OperatorType attribute) { | ||
| 12 | + return attribute.getDicDesc(); | ||
| 13 | + } | ||
| 14 | + | ||
| 15 | + @Override | ||
| 16 | + public OperatorType convertToEntityAttribute(String dbData) { | ||
| 17 | + return OperatorType.fromDicDesc(dbData); | ||
| 18 | + } | ||
| 19 | +} |
src/main/java/com/bsth/repository/oil/YlbRepository.java
| @@ -46,7 +46,8 @@ public interface YlbRepository extends BaseRepository<Ylb, Integer>{ | @@ -46,7 +46,8 @@ public interface YlbRepository extends BaseRepository<Ylb, Integer>{ | ||
| 46 | + " and y.xlbm like %?4% and y.nbbm like %?5%",nativeQuery=true) | 46 | + " and y.xlbm like %?4% and y.nbbm like %?5%",nativeQuery=true) |
| 47 | List<Ylb> listMaxRqJcsx(String rq,String gsbm,String fgsbm,String xlbm,String nbbm); | 47 | List<Ylb> listMaxRqJcsx(String rq,String gsbm,String fgsbm,String xlbm,String nbbm); |
| 48 | 48 | ||
| 49 | - @Query(value="select * from bsth_c_ylb where to_days(?1) -to_days(rq) <30 " | 49 | + @Query(value="select * from bsth_c_ylb where " |
| 50 | + + " DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= rq " | ||
| 50 | + " and rq< ?1 and ssgsdm like %?2%" | 51 | + " and rq< ?1 and ssgsdm like %?2%" |
| 51 | + " and fgsdm like %?3% and xlbm like %?4% and nbbm like %?5% " | 52 | + " and fgsdm like %?3% and xlbm like %?4% and nbbm like %?5% " |
| 52 | + " order by nbbm , rq desc,jcsx desc,lp desc",nativeQuery=true) | 53 | + " order by nbbm , rq desc,jcsx desc,lp desc",nativeQuery=true) |
| @@ -125,6 +126,12 @@ public interface YlbRepository extends BaseRepository<Ylb, Integer>{ | @@ -125,6 +126,12 @@ public interface YlbRepository extends BaseRepository<Ylb, Integer>{ | ||
| 125 | List<Object[]> checkNbmmYl(String rq, String gsbm,String fgsbm,String xlbm,String nbbm); | 126 | List<Object[]> checkNbmmYl(String rq, String gsbm,String fgsbm,String xlbm,String nbbm); |
| 126 | 127 | ||
| 127 | 128 | ||
| 129 | + @Query(value="select nbbm,cs from (select nbbm,count(nbbm) as cs from (" | ||
| 130 | + + " select nbbm,fgsdm from bsth_c_ylb where rq=?1 " | ||
| 131 | + + " and ssgsdm like %?2% group by nbbm,fgsdm " | ||
| 132 | + + " ) t group by t.nbbm) x where x.cs >1 ",nativeQuery=true) | ||
| 133 | + List<Object[]> checkNbmmFgs(String rq, String gsbm); | ||
| 134 | + | ||
| 128 | @Query(value="select jzl,yh,sh from Ylb s " | 135 | @Query(value="select jzl,yh,sh from Ylb s " |
| 129 | + " where to_days(s.rq)=to_days(?1) " | 136 | + " where to_days(s.rq)=to_days(?1) " |
| 130 | + " and s.ssgsdm like %?2% " | 137 | + " and s.ssgsdm like %?2% " |
src/main/java/com/bsth/service/gps/GpsServiceImpl.java
| @@ -12,6 +12,7 @@ import com.bsth.data.pilot80.PilotReport; | @@ -12,6 +12,7 @@ import com.bsth.data.pilot80.PilotReport; | ||
| 12 | import com.bsth.data.safe_driv.SafeDriv; | 12 | import com.bsth.data.safe_driv.SafeDriv; |
| 13 | import com.bsth.data.safe_driv.SafeDrivCenter; | 13 | import com.bsth.data.safe_driv.SafeDrivCenter; |
| 14 | import com.bsth.data.schedule.DayOfSchedule; | 14 | import com.bsth.data.schedule.DayOfSchedule; |
| 15 | +import com.bsth.entity.Line; | ||
| 15 | import com.bsth.entity.LineVersions; | 16 | import com.bsth.entity.LineVersions; |
| 16 | import com.bsth.entity.directive.D80; | 17 | import com.bsth.entity.directive.D80; |
| 17 | import com.bsth.entity.realcontrol.ScheduleRealInfo; | 18 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| @@ -252,14 +253,19 @@ public class GpsServiceImpl implements GpsService { | @@ -252,14 +253,19 @@ public class GpsServiceImpl implements GpsService { | ||
| 252 | for(Map<String, Object> rs : dataList){ | 253 | for(Map<String, Object> rs : dataList){ |
| 253 | int index=dataList.indexOf(rs); | 254 | int index=dataList.indexOf(rs); |
| 254 | if (index< dataList.size()-1&&!map_get_str( rs,"LINE_ID").equals(map_get_str( dataList.get(index+1),"LINE_ID"))){ | 255 | if (index< dataList.size()-1&&!map_get_str( rs,"LINE_ID").equals(map_get_str( dataList.get(index+1),"LINE_ID"))){ |
| 256 | + | ||
| 257 | + Line cLine =lineRepository.findOne(Integer.valueOf(map_get_str( rs,"LINE_ID"))); | ||
| 258 | + Line nextLine =lineRepository.findOne(Integer.valueOf(map_get_str( dataList.get(index+1),"LINE_ID"))); | ||
| 259 | + if (cLine!=null&&nextLine!=null){ | ||
| 255 | Map<String,Object> LSmap=new HashMap<>(); | 260 | Map<String,Object> LSmap=new HashMap<>(); |
| 256 | - String name=lineRepository.findOne(Integer.valueOf(map_get_str( rs,"LINE_ID"))).getName(); | ||
| 257 | - String NextName=lineRepository.findOne(Integer.valueOf(map_get_str( dataList.get(index+1),"LINE_ID"))).getName(); | 261 | + String name=cLine.getName(); |
| 262 | + String NextName=nextLine.getName(); | ||
| 258 | LSmap.put("abnormalType","linesSwitch"); | 263 | LSmap.put("abnormalType","linesSwitch"); |
| 259 | LSmap.put("line_line",name+"-->"+NextName); | 264 | LSmap.put("line_line",name+"-->"+NextName); |
| 260 | LSmap.put("st",map_get_long(rs, "TS")); | 265 | LSmap.put("st",map_get_long(rs, "TS")); |
| 261 | LSmap.put("et",index== dataList.size()-1?map_get_long(rs, "TS"):map_get_long( dataList.get(index+1), "TS")); | 266 | LSmap.put("et",index== dataList.size()-1?map_get_long(rs, "TS"):map_get_long( dataList.get(index+1), "TS")); |
| 262 | lineSwitch.add(LSmap); | 267 | lineSwitch.add(LSmap); |
| 268 | + } | ||
| 263 | } | 269 | } |
| 264 | serviceState = map_get_long(rs, "SERVICE_STATE"); | 270 | serviceState = map_get_long(rs, "SERVICE_STATE"); |
| 265 | if(getGpsValid(serviceState) == 1){ | 271 | if(getGpsValid(serviceState) == 1){ |
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
| @@ -291,6 +291,26 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS | @@ -291,6 +291,26 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS | ||
| 291 | String sxtj=map2.get("sxtj").toString(); | 291 | String sxtj=map2.get("sxtj").toString(); |
| 292 | if(sxtj.equals("0")){ | 292 | if(sxtj.equals("0")){ |
| 293 | listpb=listpbs; | 293 | listpb=listpbs; |
| 294 | + }else if (sxtj.equals("5")){ | ||
| 295 | + List<String> stringList=new ArrayList<String>(); | ||
| 296 | + | ||
| 297 | + List<Object[]> objectLists = repository.checkNbmmFgs(rq, gsbm); | ||
| 298 | + for (int i = 0; i < objectLists.size(); i++) { | ||
| 299 | + String clbm=objectLists.get(i)[0].toString(); | ||
| 300 | + stringList.add(clbm); | ||
| 301 | + } | ||
| 302 | + | ||
| 303 | + for (int i = 0; i < stringList.size(); i++) { | ||
| 304 | + String strNbbm=stringList.get(i); | ||
| 305 | + for (int j = 0; j < listpbs.size(); j++) { | ||
| 306 | + Map<String, Object> map = listpbs.get(j); | ||
| 307 | + String mapNbbm=map.get("clZbh").toString(); | ||
| 308 | + if(strNbbm.equals(mapNbbm)){ | ||
| 309 | + listpb.add(map); | ||
| 310 | + } | ||
| 311 | + } | ||
| 312 | + } | ||
| 313 | + | ||
| 294 | }else{ | 314 | }else{ |
| 295 | List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, "",nbbm); | 315 | List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, "",nbbm); |
| 296 | List<String> stringList=new ArrayList<String>(); | 316 | List<String> stringList=new ArrayList<String>(); |
| @@ -1269,6 +1289,19 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS | @@ -1269,6 +1289,19 @@ public class YlbServiceImpl extends BaseServiceImpl<Ylb,Integer> implements YlbS | ||
| 1269 | else | 1289 | else |
| 1270 | listYlb = repository.listYlb_s(sdf.parse(rq+" 00:00:00"), gsbm, fgsbm, xlbm, stringList); | 1290 | listYlb = repository.listYlb_s(sdf.parse(rq+" 00:00:00"), gsbm, fgsbm, xlbm, stringList); |
| 1271 | } | 1291 | } |
| 1292 | + }else if(sxtj.equals("5")){ | ||
| 1293 | + List<Object[]> objectLists = repository.checkNbmmFgs(rq, gsbm); | ||
| 1294 | + for (int i = 0; i < objectLists.size(); i++) { | ||
| 1295 | + String clbm =objectLists.get(i)[0].toString(); | ||
| 1296 | + stringList.add(clbm); | ||
| 1297 | + } | ||
| 1298 | + | ||
| 1299 | + if (stringList.size() > 0) { | ||
| 1300 | + if (type.equals("1")) | ||
| 1301 | + listYlb = repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList); | ||
| 1302 | + else | ||
| 1303 | + listYlb = repository.listYlb_s(sdf.parse(rq+" 00:00:00"), gsbm, fgsbm, xlbm, stringList); | ||
| 1304 | + } | ||
| 1272 | } else { | 1305 | } else { |
| 1273 | List<Object[]> objectLists; | 1306 | List<Object[]> objectLists; |
| 1274 | if (sxtj.equals("3")) { | 1307 | if (sxtj.equals("3")) { |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| @@ -590,6 +590,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -590,6 +590,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 590 | 590 | ||
| 591 | //计算班次实际执行时间 | 591 | //计算班次实际执行时间 |
| 592 | schAttrCalculator.calcRealDate(t).calcAllTimeByFcsj(t); | 592 | schAttrCalculator.calcRealDate(t).calcAllTimeByFcsj(t); |
| 593 | + //处理计达跨24点 | ||
| 594 | + LineConfig conf = lineConfigData.get(t.getXlBm()); | ||
| 595 | + if (t.getZdsj().compareTo(conf.getStartOpt()) < 0) { | ||
| 596 | + t.setZdsjT(sdfyyyyMMddHHmm.parse(t.getScheduleDateStr() + t.getZdsj()).getTime() + (1000 * 60 * 60 * 24)); | ||
| 597 | + } | ||
| 593 | if (t.getZdsjT() < t.getFcsjT()) { | 598 | if (t.getZdsjT() < t.getFcsjT()) { |
| 594 | rs.put("status", ResponseCode.ERROR); | 599 | rs.put("status", ResponseCode.ERROR); |
| 595 | rs.put("msg", "起终点时间异常!"); | 600 | rs.put("msg", "起终点时间异常!"); |
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailDataToolsImpl.java
| @@ -454,6 +454,19 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail | @@ -454,6 +454,19 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail | ||
| 454 | 454 | ||
| 455 | StationRoute station1 = stationRouteService.findById(lpObjList.get(0).getStationRouteId1()); | 455 | StationRoute station1 = stationRouteService.findById(lpObjList.get(0).getStationRouteId1()); |
| 456 | StationRoute station2 = stationRouteService.findById(lpObjList.get(1).getStationRouteId2()); | 456 | StationRoute station2 = stationRouteService.findById(lpObjList.get(1).getStationRouteId2()); |
| 457 | + | ||
| 458 | + // TODO | ||
| 459 | + Map<String, Object> param = new HashMap<>(); | ||
| 460 | + param.put("station.id_eq", null); | ||
| 461 | + if (station1 == null) { | ||
| 462 | + param.put("station.id_eq", lpObjList.get(0).getStationRouteId1()); | ||
| 463 | + station1 = ((List<StationRoute>) stationRouteService.list(param)).get(0); | ||
| 464 | + } | ||
| 465 | + if (station2 == null) { | ||
| 466 | + param.put("station.id_eq", lpObjList.get(0).getStationRouteId2()); | ||
| 467 | + station2 = ((List<StationRoute>) stationRouteService.list(param)).get(0); | ||
| 468 | + } | ||
| 469 | + | ||
| 457 | for (int i = 0; i < groupCount; i++) { | 470 | for (int i = 0; i < groupCount; i++) { |
| 458 | excelPoiOperator.createStringCell(wb, lpHeadRow, (short) (i * 2 + 1), station1.getStationName(), new Color(0x96b9d7)); | 471 | excelPoiOperator.createStringCell(wb, lpHeadRow, (short) (i * 2 + 1), station1.getStationName(), new Color(0x96b9d7)); |
| 459 | excelPoiOperator.createStringCell(wb, lpHeadRow, (short) (i * 2 + 2), station2.getStationName(), new Color(0x96b9d7)); | 472 | excelPoiOperator.createStringCell(wb, lpHeadRow, (short) (i * 2 + 2), station2.getStationName(), new Color(0x96b9d7)); |
| @@ -566,6 +579,19 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail | @@ -566,6 +579,19 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail | ||
| 566 | 579 | ||
| 567 | StationRoute station1 = stationRouteService.findById(lpObjList.get(0).getStationRouteId1()); | 580 | StationRoute station1 = stationRouteService.findById(lpObjList.get(0).getStationRouteId1()); |
| 568 | StationRoute station2 = stationRouteService.findById(lpObjList.get(1).getStationRouteId2()); | 581 | StationRoute station2 = stationRouteService.findById(lpObjList.get(1).getStationRouteId2()); |
| 582 | + | ||
| 583 | + // TODO | ||
| 584 | + Map<String, Object> param = new HashMap<>(); | ||
| 585 | + param.put("station.id_eq", null); | ||
| 586 | + if (station1 == null) { | ||
| 587 | + param.put("station.id_eq", lpObjList.get(0).getStationRouteId1()); | ||
| 588 | + station1 = ((List<StationRoute>) stationRouteService.list(param)).get(0); | ||
| 589 | + } | ||
| 590 | + if (station2 == null) { | ||
| 591 | + param.put("station.id_eq", lpObjList.get(0).getStationRouteId2()); | ||
| 592 | + station2 = ((List<StationRoute>) stationRouteService.list(param)).get(0); | ||
| 593 | + } | ||
| 594 | + | ||
| 569 | for (int i = 1; i <= groupCount; i++) { | 595 | for (int i = 1; i <= groupCount; i++) { |
| 570 | excelPoiOperator.createStringCell(wb, lpHeadRow, (short) (i * 2 + 1), station1.getStationName(), new Color(0x96b9d7)); | 596 | excelPoiOperator.createStringCell(wb, lpHeadRow, (short) (i * 2 + 1), station1.getStationName(), new Color(0x96b9d7)); |
| 571 | excelPoiOperator.createStringCell(wb, lpHeadRow, (short) (i * 2 + 2), station2.getStationName(), new Color(0x96b9d7)); | 597 | excelPoiOperator.createStringCell(wb, lpHeadRow, (short) (i * 2 + 2), station2.getStationName(), new Color(0x96b9d7)); |
| @@ -644,7 +670,9 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail | @@ -644,7 +670,9 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail | ||
| 644 | cell.setCellValue(bcObj.getFcsj() + "X"); | 670 | cell.setCellValue(bcObj.getFcsj() + "X"); |
| 645 | } else { // 一个车次链 | 671 | } else { // 一个车次链 |
| 646 | cell = lpRow.getCell((short) (bcObj.getGroupNo() * 2 + bcObj.getGroupBcNo() + 3)); | 672 | cell = lpRow.getCell((short) (bcObj.getGroupNo() * 2 + bcObj.getGroupBcNo() + 3)); |
| 647 | - cell.setCellValue(bcObj.getFcsj() + "X"); | 673 | + if (cell != null) { |
| 674 | + cell.setCellValue(bcObj.getFcsj() + "X"); | ||
| 675 | + } | ||
| 648 | } | 676 | } |
| 649 | break; | 677 | break; |
| 650 | case LC: | 678 | case LC: |
src/main/java/com/bsth/service/schedule/log/ModuleOperatorDbAppender.java
0 → 100644
| 1 | +package com.bsth.service.schedule.log; | ||
| 2 | + | ||
| 3 | +import ch.qos.logback.classic.spi.ILoggingEvent; | ||
| 4 | +import ch.qos.logback.core.db.DBAppenderBase; | ||
| 5 | +import ch.qos.logback.core.db.DBHelper; | ||
| 6 | +import com.bsth.control_v2.plan_module.common.exception.PlanModuleException; | ||
| 7 | +import com.bsth.entity.schedule.log.ModuleOperatorLog; | ||
| 8 | + | ||
| 9 | +import java.lang.reflect.Method; | ||
| 10 | +import java.sql.Connection; | ||
| 11 | +import java.sql.Date; | ||
| 12 | +import java.sql.PreparedStatement; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * 自定义模块业务操作日志logback自定义appender。 | ||
| 16 | + */ | ||
| 17 | +public class ModuleOperatorDbAppender extends DBAppenderBase<ILoggingEvent> { | ||
| 18 | + /** JDBC3.0中的绑定表自增的主键值,获取result需要此方法 */ | ||
| 19 | + protected static final Method GET_GENERATED_KEYS_METHOD; | ||
| 20 | + /** 插入日志sql */ | ||
| 21 | + protected static final String INSERT_SQL; | ||
| 22 | + | ||
| 23 | + @Override | ||
| 24 | + public void start() { | ||
| 25 | + super.start(); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + @Override | ||
| 29 | + protected Method getGeneratedKeysMethod() { | ||
| 30 | + return GET_GENERATED_KEYS_METHOD; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + @Override | ||
| 34 | + protected String getInsertSQL() { | ||
| 35 | + return INSERT_SQL; | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + @Override | ||
| 39 | + protected void subAppend(ILoggingEvent iLoggingEvent, Connection connection, PreparedStatement insertStatement) throws Throwable { | ||
| 40 | + // 参数判定,第一个参数必须是ModuleOperatorLog,后续的参数最多取3个 | ||
| 41 | + if (iLoggingEvent.getArgumentArray().length == 0) { | ||
| 42 | + throw new PlanModuleException(iLoggingEvent.getLoggerName() + "日志参数必须大于1"); | ||
| 43 | + } else { | ||
| 44 | + Object arg1 = iLoggingEvent.getArgumentArray()[0]; | ||
| 45 | + if (!(arg1 instanceof ModuleOperatorLog)) { | ||
| 46 | + throw new PlanModuleException(iLoggingEvent.getLoggerName() + "日志第一个参数必须是ModuleOperatorLog类型"); | ||
| 47 | + } else { | ||
| 48 | + ModuleOperatorLog arg1_log = (ModuleOperatorLog) arg1; | ||
| 49 | + // insertStatement设定ModuleOperatorLog关联数据 | ||
| 50 | + insertStatement.setLong(1, iLoggingEvent.getTimeStamp()); | ||
| 51 | + insertStatement.setString(2, arg1_log.getModuleType().getDicDesc()); | ||
| 52 | + insertStatement.setString(3, arg1_log.getOperatorType().getDicDesc()); | ||
| 53 | + insertStatement.setString(4, arg1_log.getModuleOperatorType().getDicDesc()); | ||
| 54 | + insertStatement.setString(5, arg1_log.getMessage()); | ||
| 55 | + insertStatement.setString(6, iLoggingEvent.getLevel().levelStr); | ||
| 56 | + insertStatement.setDate(7, new Date(arg1_log.getOpStartTime().getTime())); | ||
| 57 | + insertStatement.setDate(8, new Date(arg1_log.getOpEndTime().getTime())); | ||
| 58 | + insertStatement.setString(9, arg1_log.getOpUserName()); | ||
| 59 | + insertStatement.setString(10, arg1_log.getOpUserCode()); | ||
| 60 | + insertStatement.setString(11, arg1_log.getOpEntityClass()); | ||
| 61 | + insertStatement.setString(12, arg1_log.getOpBeforeJson()); | ||
| 62 | + insertStatement.setString(13, arg1_log.getOpAfterJson()); | ||
| 63 | + insertStatement.setString(14, ""); | ||
| 64 | + insertStatement.setString(15, ""); | ||
| 65 | + insertStatement.setString(16, ""); | ||
| 66 | + | ||
| 67 | + for (int i = 1; i < iLoggingEvent.getArgumentArray().length; i++) { | ||
| 68 | + if (i == 1) { | ||
| 69 | + insertStatement.setString(14, iLoggingEvent.getArgumentArray()[i].toString()); | ||
| 70 | + } else if (i == 2) { | ||
| 71 | + insertStatement.setString(15, iLoggingEvent.getArgumentArray()[i].toString()); | ||
| 72 | + } else if (i == 3) { | ||
| 73 | + insertStatement.setString(16, iLoggingEvent.getArgumentArray()[i].toString()); | ||
| 74 | + } else { | ||
| 75 | + break; | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + int updateCount = insertStatement.executeUpdate(); | ||
| 80 | + if (updateCount != 1) { | ||
| 81 | + addWarn("Failed to insert loggingEvent"); | ||
| 82 | + } | ||
| 83 | + } | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + @Override | ||
| 89 | + protected void secondarySubAppend(ILoggingEvent iLoggingEvent, Connection connection, long l) throws Throwable { | ||
| 90 | + // TODO: | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + @Override | ||
| 94 | + public void append(ILoggingEvent eventObject) { | ||
| 95 | + Connection connection = null; | ||
| 96 | + PreparedStatement insertStatement = null; | ||
| 97 | + try { | ||
| 98 | + connection = this.connectionSource.getConnection(); | ||
| 99 | + connection.setAutoCommit(false); | ||
| 100 | + insertStatement = connection.prepareStatement(INSERT_SQL); | ||
| 101 | + synchronized (this) { | ||
| 102 | + subAppend(eventObject, connection, insertStatement); | ||
| 103 | + } | ||
| 104 | + // TODO:可能以后需要secondarySubAppend | ||
| 105 | + | ||
| 106 | + connection.commit(); | ||
| 107 | + } catch (Throwable exp) { | ||
| 108 | + exp.printStackTrace(); | ||
| 109 | + this.addError("problem appending event", exp); | ||
| 110 | + } finally { | ||
| 111 | + DBHelper.closeStatement(insertStatement); | ||
| 112 | + DBHelper.closeConnection(connection); | ||
| 113 | + } | ||
| 114 | + } | ||
| 115 | + | ||
| 116 | + static { | ||
| 117 | + StringBuilder sql = new StringBuilder(); | ||
| 118 | + sql.append("insert into bsth_c_s_op_log ("); | ||
| 119 | + sql.append("timestmp, "); | ||
| 120 | + sql.append("module_type, "); | ||
| 121 | + sql.append("operator_type, "); | ||
| 122 | + sql.append("module_operator_type, "); | ||
| 123 | + sql.append("message, "); | ||
| 124 | + sql.append("level_name, "); | ||
| 125 | + sql.append("op_start_time, "); | ||
| 126 | + sql.append("op_end_time, "); | ||
| 127 | + sql.append("op_user_name, "); | ||
| 128 | + sql.append("op_user_code, "); | ||
| 129 | + sql.append("op_entity_class, "); | ||
| 130 | + sql.append("op_before_json, "); | ||
| 131 | + sql.append("op_after_json, "); | ||
| 132 | + sql.append("opt_arg1, "); | ||
| 133 | + sql.append("opt_arg2, "); | ||
| 134 | + sql.append("opt_arg3) "); | ||
| 135 | + sql.append(" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); | ||
| 136 | + INSERT_SQL = sql.toString(); | ||
| 137 | + | ||
| 138 | + Method getGeneratedKeysMethod; | ||
| 139 | + try { | ||
| 140 | + getGeneratedKeysMethod = PreparedStatement.class.getMethod("getGeneratedKeys", (Class[])null); | ||
| 141 | + } catch (Exception exp) { | ||
| 142 | + getGeneratedKeysMethod = null; | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + GET_GENERATED_KEYS_METHOD = getGeneratedKeysMethod; | ||
| 146 | + } | ||
| 147 | +} |
src/main/java/com/bsth/service/schedule/log/PlanLogger.java
0 → 100644
| 1 | +package com.bsth.service.schedule.log; | ||
| 2 | + | ||
| 3 | +import com.bsth.control_v2.plan_module.common.dto.schedule.PlanInfoDto; | ||
| 4 | +import com.bsth.control_v2.plan_module.common.enums.log.ModuleOperatorType; | ||
| 5 | +import com.bsth.control_v2.plan_module.common.enums.log.ModuleType; | ||
| 6 | +import com.bsth.control_v2.plan_module.common.enums.log.OperatorType; | ||
| 7 | +import com.bsth.entity.schedule.SchedulePlan; | ||
| 8 | +import com.bsth.entity.schedule.log.ModuleOperatorLog; | ||
| 9 | +import org.slf4j.Logger; | ||
| 10 | +import org.slf4j.LoggerFactory; | ||
| 11 | +import org.springframework.stereotype.Service; | ||
| 12 | + | ||
| 13 | +import java.util.Date; | ||
| 14 | + | ||
| 15 | +/** | ||
| 16 | + * 排班计划日志。 | ||
| 17 | + */ | ||
| 18 | +@Service | ||
| 19 | +public class PlanLogger { | ||
| 20 | + /** 日志记录器 */ | ||
| 21 | + private static final Logger LOGGER = LoggerFactory.getLogger(PlanLogger.class); | ||
| 22 | + | ||
| 23 | + /** | ||
| 24 | + * 生成排班计划日志。 | ||
| 25 | + * @param startTime 操作开始时间 | ||
| 26 | + * @param endTime 操作结束时间 | ||
| 27 | + */ | ||
| 28 | + public void createLog(Date startTime, Date endTime) { | ||
| 29 | + ModuleOperatorLog moduleOperatorLog = new ModuleOperatorLog(); | ||
| 30 | + moduleOperatorLog.setMessage("排班生成!"); | ||
| 31 | + moduleOperatorLog.setModuleType(ModuleType.SCHEDULE); | ||
| 32 | + moduleOperatorLog.setOperatorType(OperatorType.NEW); | ||
| 33 | + moduleOperatorLog.setModuleOperatorType(ModuleOperatorType.SCHEDULE_NEW); | ||
| 34 | + moduleOperatorLog.setOpStartTime(startTime); | ||
| 35 | + moduleOperatorLog.setOpEndTime(endTime); | ||
| 36 | + moduleOperatorLog.setOpUserName("root"); | ||
| 37 | + moduleOperatorLog.setOpUserCode("root"); | ||
| 38 | + moduleOperatorLog.setOpEntityClass(SchedulePlan.class.getName()); | ||
| 39 | + moduleOperatorLog.setOpBeforeJson("{}"); | ||
| 40 | + moduleOperatorLog.setOpAfterJson("{}"); | ||
| 41 | + | ||
| 42 | + // 如果需要opArg1,opArg2,opArg3,从第2个参数加起,如:LOGGER.info("", {moduleOperatorLog}, {opArg1}, {opArg2}) | ||
| 43 | + LOGGER.info("排班计划生成日志:{}", moduleOperatorLog); | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 修改排班计划明细日志。 | ||
| 48 | + * @param startTime 操作开始时间 | ||
| 49 | + * @param beforeData 修改前数据 | ||
| 50 | + * @param endTime 操作结束时间 | ||
| 51 | + * @param afterData 修改后数据 | ||
| 52 | + */ | ||
| 53 | + public void modifyInfoLog(Date startTime, PlanInfoDto beforeData, Date endTime, PlanInfoDto afterData) { | ||
| 54 | + // TODO: | ||
| 55 | + } | ||
| 56 | +} |
src/main/java/com/bsth/service/schedule/log/TimetableLogger.java
0 → 100644
| 1 | +package com.bsth.service.schedule.log; | ||
| 2 | + | ||
| 3 | +import com.bsth.control_v2.plan_module.common.dto.schedule.timetable.TTInfoDetailDto; | ||
| 4 | +import com.bsth.control_v2.plan_module.common.dto.schedule.timetable.TTInfoDto; | ||
| 5 | +import org.slf4j.Logger; | ||
| 6 | +import org.slf4j.LoggerFactory; | ||
| 7 | +import org.springframework.stereotype.Service; | ||
| 8 | + | ||
| 9 | +import java.util.Date; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 时刻表日志。 | ||
| 13 | + */ | ||
| 14 | +@Service | ||
| 15 | +public class TimetableLogger { | ||
| 16 | + /** 日志记录器 */ | ||
| 17 | + private static final Logger LOGGER = LoggerFactory.getLogger(TimetableLogger.class); | ||
| 18 | + | ||
| 19 | + /** | ||
| 20 | + * 生成时刻表模版日志。 | ||
| 21 | + * @param startTime 操作开始时间 | ||
| 22 | + * @param endTime 操作结束时间 | ||
| 23 | + */ | ||
| 24 | + public void createTTLog(Date startTime, Date endTime) { | ||
| 25 | + // TODO: | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + /** | ||
| 29 | + * 修改时刻表模版日志。 | ||
| 30 | + * @param startTime 操作开始时间 | ||
| 31 | + * @param beforeData 修改前数据 | ||
| 32 | + * @param endTime 操作结束时间 | ||
| 33 | + * @param afterData 修改后数据 | ||
| 34 | + */ | ||
| 35 | + public void modifyTTLog(Date startTime, TTInfoDto beforeData, Date endTime, TTInfoDto afterData) { | ||
| 36 | + // TODO: | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * 导入时刻表明细日志。 | ||
| 41 | + * @param startTime 操作开始时间 | ||
| 42 | + * @param endTime 操作结束时间 | ||
| 43 | + */ | ||
| 44 | + public void importTTDLog(Date startTime, Date endTime) { | ||
| 45 | + // TODO:导入前备份一次,导入后备份一次,备份前后的id放入before和after中 | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + /** | ||
| 49 | + * 修改时刻表明细日志。 | ||
| 50 | + * @param startTime 操作开始时间 | ||
| 51 | + * @param beforeData 修改前数据 | ||
| 52 | + * @param endTime 操作结束时间 | ||
| 53 | + * @param afterData 修改后数据 | ||
| 54 | + */ | ||
| 55 | + public void modifyTTDLog(Date startTime, TTInfoDetailDto beforeData, Date endTime, TTInfoDetailDto afterData) { | ||
| 56 | + // TODO: | ||
| 57 | + } | ||
| 58 | +} |
src/main/resources/fatso/start.js
| @@ -16,7 +16,7 @@ var platform = process.platform; | @@ -16,7 +16,7 @@ var platform = process.platform; | ||
| 16 | var iswin = platform == 'win32'; | 16 | var iswin = platform == 'win32'; |
| 17 | var sp = platform == 'win32' ? '\\' : '/'; | 17 | var sp = platform == 'win32' ? '\\' : '/'; |
| 18 | //不参与的目录 | 18 | //不参与的目录 |
| 19 | -var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission' + sp + 'authorize_all', 'summary', 'history_sch', 'report' + sp + 'oil', 'base' + sp + 'geo_data_edit', 'base' + sp + 'carpark', 'forms', 'mforms', 'report', 'punctual', 'base' + sp + 'timesmodel'] | 19 | +var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission' + sp + 'authorize_all','permission' + sp + 'user', 'summary', 'history_sch', 'report' + sp + 'oil', 'base' + sp + 'geo_data_edit', 'base' + sp + 'carpark', 'forms', 'mforms', 'report', 'punctual', 'base' + sp + 'timesmodel'] |
| 20 | , ep = new EventProxy() | 20 | , ep = new EventProxy() |
| 21 | , pName = 'bsth_control' | 21 | , pName = 'bsth_control' |
| 22 | , path = process.cwd() | 22 | , path = process.cwd() |
src/main/resources/logback.xml
| @@ -160,6 +160,46 @@ | @@ -160,6 +160,46 @@ | ||
| 160 | </logger> | 160 | </logger> |
| 161 | 161 | ||
| 162 | 162 | ||
| 163 | + <!-- 时刻表,排班计划业务修改日志 --> | ||
| 164 | + <!--<springProfile name="dev">--> | ||
| 165 | + <!--<appender name="MYDB" class="com.bsth.service.schedule.log.ModuleOperatorDbAppender">--> | ||
| 166 | + <!--<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">--> | ||
| 167 | + <!--<dataSource class="org.apache.commons.dbcp.BasicDataSource">--> | ||
| 168 | + <!--<driverClassName>com.mysql.jdbc.Driver</driverClassName>--> | ||
| 169 | + <!--<url>--> | ||
| 170 | + <!--<![CDATA[--> | ||
| 171 | + <!--jdbc:mysql://127.0.0.1/test_control?useUnicode=true&characterEncoding=utf-8&useSSL=false--> | ||
| 172 | + <!--]]>--> | ||
| 173 | + <!--</url>--> | ||
| 174 | + <!--<username>root</username>--> | ||
| 175 | + <!--<password></password>--> | ||
| 176 | + <!--<testOnBorrow>true</testOnBorrow>--> | ||
| 177 | + <!--<validationQuery>--> | ||
| 178 | + <!--<![CDATA[--> | ||
| 179 | + <!--SELECT 1--> | ||
| 180 | + <!--]]>--> | ||
| 181 | + <!--</validationQuery>--> | ||
| 182 | + <!--</dataSource>--> | ||
| 183 | + <!--</connectionSource>--> | ||
| 184 | + <!--</appender>--> | ||
| 185 | + <!--</springProfile>--> | ||
| 186 | + | ||
| 187 | + <!--<appender name="ASYNC_MYDB" class="ch.qos.logback.classic.AsyncAppender">--> | ||
| 188 | + <!--<!– 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 –>--> | ||
| 189 | + <!--<discardingThreshold >0</discardingThreshold>--> | ||
| 190 | + <!--<!– 更改默认的队列的深度,该值会影响性能.默认值为256 –>--> | ||
| 191 | + <!--<queueSize>512</queueSize>--> | ||
| 192 | + <!--<!– 添加附加的appender,最多只能添加一个 –>--> | ||
| 193 | + <!--<appender-ref ref ="MYDB"/>--> | ||
| 194 | + <!--</appender>--> | ||
| 195 | + | ||
| 196 | + <!--<logger name="com.bsth.service.schedule.log.PlanLogger"--> | ||
| 197 | + <!--level="INFO" additivity="false">--> | ||
| 198 | + <!--<appender-ref ref="ASYNC_MYDB" />--> | ||
| 199 | + <!--</logger>--> | ||
| 200 | + | ||
| 201 | + <!-- TODO --> | ||
| 202 | + | ||
| 163 | <!-- gps --> | 203 | <!-- gps --> |
| 164 | <appender name="GPS_COUNT" | 204 | <appender name="GPS_COUNT" |
| 165 | class="ch.qos.logback.core.rolling.RollingFileAppender"> | 205 | class="ch.qos.logback.core.rolling.RollingFileAppender"> |
src/main/resources/static/pages/base/timesmodel/js/add-form-reload.js
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | if (!$('body').hasClass('page-sidebar-closed')) { | 3 | if (!$('body').hasClass('page-sidebar-closed')) { |
| 4 | $('.menu-toggler.sidebar-toggler').click(); | 4 | $('.menu-toggler.sidebar-toggler').click(); |
| 5 | } | 5 | } |
| 6 | - | 6 | + |
| 7 | $('.openHaveSkb').on('click',function() { | 7 | $('.openHaveSkb').on('click',function() { |
| 8 | var skbId = $("#skbNameSelect").val(); | 8 | var skbId = $("#skbNameSelect").val(); |
| 9 | var argus = { | 9 | var argus = { |
src/main/resources/static/pages/base/timesmodel/js/gantt.js
| @@ -66,6 +66,8 @@ | @@ -66,6 +66,8 @@ | ||
| 66 | CSMap = getMaxCarAndStopSpace0(map,seMap); | 66 | CSMap = getMaxCarAndStopSpace0(map,seMap); |
| 67 | // 发车间隙 | 67 | // 发车间隙 |
| 68 | map.fcjx = CSMap.fcjx; | 68 | map.fcjx = CSMap.fcjx; |
| 69 | + map.stt = "1"; | ||
| 70 | + _paramObj = Main_v2.getFactory().createParameterObj(map, dataMap); | ||
| 69 | }else if(map.baseRes== '1') { | 71 | }else if(map.baseRes== '1') { |
| 70 | CSMap = getMaxCarAndStopSpace1(map); | 72 | CSMap = getMaxCarAndStopSpace1(map); |
| 71 | // 发车间隙 | 73 | // 发车间隙 |
| @@ -144,7 +146,7 @@ | @@ -144,7 +146,7 @@ | ||
| 144 | // // 初始化右键菜单. | 146 | // // 初始化右键菜单. |
| 145 | // contextInit(graph); | 147 | // contextInit(graph); |
| 146 | 148 | ||
| 147 | - if (map.baseRes == '3' || map.baseRes == '1') { | 149 | + if (map.baseRes == '3' || map.baseRes == '1' || map.baseRes == '0') { |
| 148 | // 导入导出设置 | 150 | // 导入导出设置 |
| 149 | // Main_v2_2.exportExcelConfig($_GlobalGraph.getDataArray); | 151 | // Main_v2_2.exportExcelConfig($_GlobalGraph.getDataArray); |
| 150 | 152 |
src/main/resources/static/pages/base/timesmodel/js/v2_2/Main_v2_2_ExcelObj.js
| @@ -581,10 +581,10 @@ var Main_v2_2_ExcelObj = (function() { | @@ -581,10 +581,10 @@ var Main_v2_2_ExcelObj = (function() { | ||
| 581 | "zdzid": oGanttBc.zdz, // 终点站id | 581 | "zdzid": oGanttBc.zdz, // 终点站id |
| 582 | 582 | ||
| 583 | "isUp": bIsUp, // 是否上行 | 583 | "isUp": bIsUp, // 是否上行 |
| 584 | - "isFb": null, // 是否分班(_resetBdOutInLcBcGroup方法修正) | 584 | + "isFb": false, // 是否分班(_resetBdOutInLcBcGroup方法修正) |
| 585 | 585 | ||
| 586 | "bcType": oGanttBc.bcType, // 班次类型(bc、out、in、lc) | 586 | "bcType": oGanttBc.bcType, // 班次类型(bc、out、in、lc) |
| 587 | - "fcsj": oGanttBc.fcsj, // 发车时间描述 | 587 | + "fcsj": (oGanttBc.fcsj == null ? "" : oGanttBc.fcsj), // 发车时间描述 |
| 588 | 588 | ||
| 589 | "groupNo": -99, // 第几圈(_resetBdOutInLcBcGroup方法修正) | 589 | "groupNo": -99, // 第几圈(_resetBdOutInLcBcGroup方法修正) |
| 590 | "groupBcNo": -99, // 圈里第几个班次(_resetBdOutInLcBcGroup方法修正) | 590 | "groupBcNo": -99, // 圈里第几个班次(_resetBdOutInLcBcGroup方法修正) |
src/main/resources/static/pages/base/timesmodel/js/v2_2/main_v2_2.js
| @@ -43,7 +43,7 @@ var Main_v2_2 = function() { | @@ -43,7 +43,7 @@ var Main_v2_2 = function() { | ||
| 43 | schedule.fnAdjustHeadway(); | 43 | schedule.fnAdjustHeadway(); |
| 44 | // 4、计算吃饭班次 | 44 | // 4、计算吃饭班次 |
| 45 | schedule.fnCalcuEatBc(); | 45 | schedule.fnCalcuEatBc(); |
| 46 | - // // 6、计算末班车 | 46 | + // // 6、计算末班车(TODO:这里家里末班车,貌似导出Excel会报错,待修正) |
| 47 | // schedule.fnCalcuLastBc(); | 47 | // schedule.fnCalcuLastBc(); |
| 48 | // 7、重新设置停站时间 | 48 | // 7、重新设置停站时间 |
| 49 | schedule.fnReSetLayoverTime(); | 49 | schedule.fnReSetLayoverTime(); |
| @@ -64,8 +64,8 @@ var Main_v2_2 = function() { | @@ -64,8 +64,8 @@ var Main_v2_2 = function() { | ||
| 64 | * 导出时刻表配置。 | 64 | * 导出时刻表配置。 |
| 65 | * @param fnGetGanttBc 获取gantt班次方法 | 65 | * @param fnGetGanttBc 获取gantt班次方法 |
| 66 | */ | 66 | */ |
| 67 | - exportExcelConfig: function(fnGetGanttBc) { | ||
| 68 | - var oExcel = new Main_v2_2_ExcelObj(_paramObj, fnGetGanttBc); | 67 | + exportExcelConfig: function(paramobj, fnGetGanttBc) { |
| 68 | + var oExcel = new Main_v2_2_ExcelObj(paramobj, fnGetGanttBc); | ||
| 69 | 69 | ||
| 70 | $('.exportAddXls').off('click'); | 70 | $('.exportAddXls').off('click'); |
| 71 | $('.exportAddXlsx').off('click'); | 71 | $('.exportAddXlsx').off('click'); |
src/main/resources/static/pages/home.html
| @@ -59,26 +59,40 @@ | @@ -59,26 +59,40 @@ | ||
| 59 | } | 59 | } |
| 60 | </style> | 60 | </style> |
| 61 | <div class="system_change_log"> | 61 | <div class="system_change_log"> |
| 62 | - <h2 style="text-indent: 35px;margin: 10px 0 5px;">2018-08-23 更新说明 Changelog</h2> | 62 | + <h2 style="text-indent: 35px;margin: 10px 0 5px;">2019-04-11 更新说明 Changelog</h2> |
| 63 | <br><br> | 63 | <br><br> |
| 64 | <ul > | 64 | <ul > |
| 65 | + <li class="sub_title"><h6>权限管理</h6></li> | ||
| 66 | + <li><span class="label s_c_change">修复</span>1、编辑某一个员工,用户、角色和授权管理设置在同一界面。</li> | ||
| 67 | + <li><span class="label s_c_change">新增</span>2、用户增加一项状态,显示主调、监控和作废。</li> | ||
| 68 | + <li class="sub_title"><h6>线调</h6></li> | ||
| 69 | + <li><span class="label s_c_change">新增</span>1、少量班次对换完成用颜色标记为已换。</li> | ||
| 70 | + <li><span class="label s_c_change">新增</span>2、子任务可最小化。</li> | ||
| 71 | + <li><span class="label s_c_change">修复</span>3、修正子任务一个备注栏原因选择后其他子任务都会同步备注此原因。</li> | ||
| 72 | + <li><span class="label s_c_change">修复</span>4、轨迹回放只显示当前一段时间内的gps走向,已轨迹回放的走向自动不显示(只显示当前上下行的gps走向)。</li> | ||
| 73 | + <li><span class="label s_c_change">修复</span>5、轨迹回放播放速度添加更多倍速播放可选。</li> | ||
| 74 | + <li><span class="label s_c_change">新增</span>6、"线路配置"分割成"线路配置"、"翻班与自动执行",可独立授权。</li> | ||
| 75 | + <li><span class="label s_c_change">新增</span>7、添加设置,选择是否显示应到实到误差时间。</li> | ||
| 76 | + <li><span class="label s_c_change">修复</span>8、无发有到时间 为紫色完成状态,改为显眼颜色区分,用橙色区分。</li> | ||
| 77 | + <li><span class="label s_c_change">修复</span>9、轨迹回放中根据时间点切换线路版本信息。</li> | ||
| 78 | + <li><span class="label s_c_change">修复</span>10、路牌对调连续请求造成数据不一致,翻班时无法清楚前日的排班数据。</li> | ||
| 65 | <li class="sub_title"><h6>计划调度</h6></li> | 79 | <li class="sub_title"><h6>计划调度</h6></li> |
| 66 | - <li><span class="label s_c_change">修复</span>1、添加新的排班验证规则,如果当天的时刻表有的路牌在排班数据中没有,提示错误。</li> | ||
| 67 | - <li><span class="label s_c_change">修复</span>2、修改车辆(或人员)时,判定是否属于当前用户所属分公司中,不属于提示错误,允许继续保存。</li> | ||
| 68 | - <li><span class="label s_c_change">修复</span>3、修改车辆时(或人员)时,判定是否属于当前用户所属公司中,不属于显示警告信息,不能保存。</li> | ||
| 69 | - <li class="sub_title"><h6>运管处平台</h6></li> | ||
| 70 | - <li><span class="label s_c_change">修复</span>1、上传时刻表时,记录时刻表对应的版本号以及该版本对应的历史站点路由信息。</li> | ||
| 71 | - <li><span class="label s_c_change">修复</span>2、上传时刻表时,针对线路编码、时刻表执行时间、首末站点名称,首末站点序号这几个要素做出判断,不符合要求的要素做出相应的提示。</li> | 80 | + <li><span class="label s_c_change">修复</span>1、车辆报废,释放设备编号后在设备管理里添加一条设备替换记录。</li> |
| 81 | + <li><span class="label s_c_change">修复</span>2、线路值勤日报,修改班次时,跨线路修改班次车提示报警。</li> | ||
| 82 | + <li><span class="label s_c_change">修复</span>3、增加公司,分公司查询条件,公司,分公司,线路都是跟登录用户权限的,导出的数据和查询条件一致。</li> | ||
| 83 | + <li><span class="label s_c_change">修复</span>4、排班时,页面添加规则逻辑判定。</li> | ||
| 84 | + <li><span class="label s_c_change">修复</span>5、车辆导出修正,导出内容和权限匹配,和搜索条件匹配。</li> | ||
| 85 | + <li><span class="label s_c_change">新增</span>6、所有的页面搜索添加排序选项功能。</li> | ||
| 86 | + <li><span class="label s_c_change">新增</span>7、新增计划排班预览功能。</li> | ||
| 72 | <li class="sub_title"><h6>统计报表</h6></li> | 87 | <li class="sub_title"><h6>统计报表</h6></li> |
| 73 | - <li><span class="label s_c_change">修复</span>1、对集群调度系统“报表管理”中各类统计报表(只提供单线汇总统计的报表除外),增设线路性质区分统计功能选项,按“全部线路”、“营运线路”、“非营运线路”进行区分,且默认选项为“营运线路”)。</li> | ||
| 74 | - <li><span class="label s_c_change">修复</span>2、对集群调度系统“报表管理”中各类统计报表(只提供单线汇总统计的报表除外),增设四家直属公司统计选项。</li> | ||
| 75 | - <li><span class="label s_c_change">修复</span>3、在“营运线路出车率统计表”中,增加早高峰出车率统计项,计算公式:早高峰实际出车数/线路计划配车数。</li> | ||
| 76 | - <li><span class="label s_c_change">修复</span>4、发车准点率中加入到站准点率,统计班次为首站发车为起点站的班次。</li> | ||
| 77 | - <li><span class="label s_c_change">修复</span>5、统计日报调度日报烂班详细统计标准以“调度日报”为准。</li> | ||
| 78 | - <li class="sub_title"><h6>线调</h6></li> | ||
| 79 | - <li><span class="label s_c_change">修复</span>1、修正一个线调bug,这个bug导致部分套跑班车的车辆,一定几率会出现车载线路无法正常切换问题。</li> | 88 | + <li><span class="label s_c_change">新增</span>1、新增早高峰出车报表。</li> |
| 89 | + <li><span class="label s_c_change">新增</span>2、新增调度日报(待发对比) 报表。</li> | ||
| 90 | + <li><span class="label s_c_change">新增</span>3、新增路单数据统计报表。</li> | ||
| 91 | + <li><span class="label s_c_change">修复</span>4、修正班次车辆人员日报表中的售票员统计。</li> | ||
| 80 | <li class="sub_title"><h6>基础信息</h6></li> | 92 | <li class="sub_title"><h6>基础信息</h6></li> |
| 81 | - <li><span class="label s_c_change">修复</span>1、车辆设备管理,只有新增,没有修改、作废,启用日期使用保存的时间。</li> | ||
| 82 | - <li><span class="label s_c_change">修复</span>2、线路相关问题优化(站点缓冲区修改多边形中心点可拖动,可以修改为圆形、修改后定位、线路文件上传可填写版本)。</li> | 93 | + <li><span class="label s_c_change">修复</span>1、线路版本:待更新状态增加删除功能,历史版本取消修改功能。</li> |
| 94 | + <li><span class="label s_c_change">修复</span>2、线路信息-站点详情列-详情页面-站点修改功能:站点修改多边形功能修改,站点中心点可以移动。</li> | ||
| 95 | + <li class="sub_title"><h6>用油管理</h6></li> | ||
| 96 | + <li><span class="label s_c_change">修复</span>1、修正加油人员不符保存后不在显示。</li> | ||
| 83 | </ul> | 97 | </ul> |
| 84 | </div> | 98 | </div> |
src/main/resources/static/pages/oil/list_ph.html
| @@ -149,6 +149,7 @@ | @@ -149,6 +149,7 @@ | ||
| 149 | <option value="2">一车多单</option> | 149 | <option value="2">一车多单</option> |
| 150 | <option value="3">有加油没里程</option> | 150 | <option value="3">有加油没里程</option> |
| 151 | <option value="4">有里程没加油</option> | 151 | <option value="4">有里程没加油</option> |
| 152 | + <option value="5">跨分工用车</option> | ||
| 152 | </select> | 153 | </select> |
| 153 | </div> | 154 | </div> |
| 154 | 155 | ||
| @@ -661,12 +662,17 @@ onkeyup="this.value=this.value.replace(/[^(\d||/.)]/g,'').replace('.','$#$').rep | @@ -661,12 +662,17 @@ onkeyup="this.value=this.value.replace(/[^(\d||/.)]/g,'').replace('.','$#$').rep | ||
| 661 | $('tr.filter .filter-submit').on('click', function () { | 662 | $('tr.filter .filter-submit').on('click', function () { |
| 662 | var ylbGsdm=$("#ylbListGsdmId").val(); | 663 | var ylbGsdm=$("#ylbListGsdmId").val(); |
| 663 | var ylbFgsdm=$("#ylbListFgsdmId").val(); | 664 | var ylbFgsdm=$("#ylbListFgsdmId").val(); |
| 665 | + var nbbm=$("#nbbm").val(); | ||
| 664 | if ($("#rq").val() == "" || $("#rq").val() ==null){ | 666 | if ($("#rq").val() == "" || $("#rq").val() ==null){ |
| 665 | layer.msg('请选择日期.'); | 667 | layer.msg('请选择日期.'); |
| 666 | - }else if(ylbGsdm=="" || ylbGsdm==null||ylbFgsdm==null){ | 668 | + }else if(ylbGsdm=="" || ylbGsdm==null){ |
| 667 | // || ylbFgsdm=="" | 669 | // || ylbFgsdm=="" |
| 668 | - layer.msg('请选择公司和分公司.'); | ||
| 669 | - }else { | 670 | + layer.msg('请选择公司'); |
| 671 | + } | ||
| 672 | + /* else if( (ylbFgsdm==""||ylbFgsdm==null) && (nbbm=="" || nbbm==null) ){ | ||
| 673 | + layer.msg('不选择分公司处理输入车辆自编号'); | ||
| 674 | + } */ | ||
| 675 | + else { | ||
| 670 | var params = getParamsList(); | 676 | var params = getParamsList(); |
| 671 | page = 0; | 677 | page = 0; |
| 672 | jsDoQuery(params, true); | 678 | jsDoQuery(params, true); |
src/main/resources/static/pages/permission/user/authorize.html
| 1 | -<!DOCTYPE html> | 1 | +<!--<!DOCTYPE html>--> |
| 2 | <html lang="zh-cn"> | 2 | <html lang="zh-cn"> |
| 3 | 3 | ||
| 4 | <head> | 4 | <head> |
| 5 | <meta charset="UTF-8"> | 5 | <meta charset="UTF-8"> |
| 6 | + <script src="/metronic_v4.5.4/plugins/jquery.min.js"></script> | ||
| 7 | + <script src="/assets/js/common.js"></script> | ||
| 8 | + <script src="/assets/plugins/uk3.0/uikit.min.js"></script> | ||
| 9 | + <script src="/assets/plugins/uk3.0/uikit-icons.min.js"></script> | ||
| 10 | + <script src="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js"></script> | ||
| 11 | + <!-- EventProxy --> | ||
| 12 | + <script src="/assets/js/eventproxy.js"></script> | ||
| 13 | + <!-- art-template 模版引擎 --> | ||
| 14 | + <script src="/assets/plugins/template.js"></script> | ||
| 15 | + <script src="/real_control_v2/assets/plugins/moment/moment.min.js"></script> | ||
| 16 | + <script src="/assets/plugins/ztree_v3/js/jquery.ztree.core.min.js"></script> | ||
| 17 | + <script src="/assets/plugins/ztree_v3/js/jquery.ztree.excheck.min.js"></script> | ||
| 6 | <link rel="stylesheet" href="/assets/plugins/uk3.0/uikit.min.css"/> | 18 | <link rel="stylesheet" href="/assets/plugins/uk3.0/uikit.min.css"/> |
| 7 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" /> | 19 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" /> |
| 8 | <link rel="stylesheet" href="/assets/plugins/ztree_v3/css/zTreeStyle/zTreeStyle.css" /> | 20 | <link rel="stylesheet" href="/assets/plugins/ztree_v3/css/zTreeStyle/zTreeStyle.css" /> |
| 9 | <style> | 21 | <style> |
| 10 | - html,body{ | ||
| 11 | - height: 100%; | ||
| 12 | - } | ||
| 13 | - .ct_page{ | ||
| 14 | - padding: 25px 15px; | ||
| 15 | - height: 100%; | ||
| 16 | - height: calc(100% - 50px); | ||
| 17 | - } | 22 | + html,body{ |
| 23 | + height: 100%; | ||
| 24 | + } | ||
| 25 | + .ct_page{ | ||
| 26 | + padding: 25px 15px; | ||
| 27 | + height: 100%; | ||
| 28 | + height: calc(100% - 50px); | ||
| 29 | + } | ||
| 18 | 30 | ||
| 19 | - .ct_cont{ | ||
| 20 | - height: calc(100% - 41px); | ||
| 21 | - } | 31 | + .ct_cont{ |
| 32 | + height: calc(100% - 41px); | ||
| 33 | + } | ||
| 22 | 34 | ||
| 23 | - .ct_cont>div>div.uk-card{ | ||
| 24 | - height: 99%; | ||
| 25 | - } | 35 | + .ct_cont>div>div.uk-card{ |
| 36 | + height: 99%; | ||
| 37 | + } | ||
| 26 | 38 | ||
| 27 | - form .uk-inline{ | ||
| 28 | - width: calc(100% - 4px); | ||
| 29 | - margin-left: 2px; | ||
| 30 | - } | 39 | + form .uk-inline{ |
| 40 | + width: calc(100% - 4px); | ||
| 41 | + margin-left: 2px; | ||
| 42 | + } | ||
| 31 | 43 | ||
| 32 | - .ct-card-body{ | ||
| 33 | - overflow: auto; | ||
| 34 | - padding: 1px 1px 0 2px; | ||
| 35 | - height: calc(100% - 54px); | ||
| 36 | - position: relative; | ||
| 37 | - margin-top: -12px; | ||
| 38 | - } | 44 | + .ct-card-body{ |
| 45 | + overflow: auto; | ||
| 46 | + padding: 1px 1px 0 2px; | ||
| 47 | + height: calc(100% - 54px); | ||
| 48 | + position: relative; | ||
| 49 | + margin-top: -12px; | ||
| 50 | + } | ||
| 39 | 51 | ||
| 40 | - .ct_li_desc{ | ||
| 41 | - color: #a8a8a8; | ||
| 42 | - font-size: 13px; | ||
| 43 | - } | 52 | + .ct_li_desc{ |
| 53 | + color: #a8a8a8; | ||
| 54 | + font-size: 13px; | ||
| 55 | + } | ||
| 44 | 56 | ||
| 45 | - .ct-card-body .uk-list-large{ | ||
| 46 | - font-size: 14px; | ||
| 47 | - } | 57 | + .ct-card-body .uk-list-large{ |
| 58 | + font-size: 14px; | ||
| 59 | + } | ||
| 48 | 60 | ||
| 49 | - .ct-card-body .uk-list-large>li{ | ||
| 50 | - cursor: default; | ||
| 51 | - padding-left: 20px; | ||
| 52 | - margin-top: 2px !important; | ||
| 53 | - padding-top: 17px !important; | ||
| 54 | - position: relative; | ||
| 55 | - } | 61 | + .ct-card-body .uk-list-large>li{ |
| 62 | + cursor: default; | ||
| 63 | + padding-left: 20px; | ||
| 64 | + margin-top: 2px !important; | ||
| 65 | + padding-top: 17px !important; | ||
| 66 | + position: relative; | ||
| 67 | + } | ||
| 56 | 68 | ||
| 57 | - .ct-card-body .uk-list-large>li:hover{ | ||
| 58 | - background: #edecec; | ||
| 59 | - } | 69 | + .ct-card-body .uk-list-large>li:hover{ |
| 70 | + background: #edecec; | ||
| 71 | + } | ||
| 60 | 72 | ||
| 61 | - .ct-card-body .uk-list-large>li.active{ | ||
| 62 | - background: #1e87f0 !important; | ||
| 63 | - color: white; | ||
| 64 | - } | 73 | + .ct-card-body .uk-list-large>li.active{ |
| 74 | + background: #1e87f0 !important; | ||
| 75 | + color: white; | ||
| 76 | + } | ||
| 65 | 77 | ||
| 66 | - .ct-card-body .uk-list-large>li.active>span.role-code{ | ||
| 67 | - color: #ffffff; | ||
| 68 | - } | 78 | + .ct-card-body .uk-list-large>li.active>span.role-code{ |
| 79 | + color: #ffffff; | ||
| 80 | + } | ||
| 69 | 81 | ||
| 70 | - .ct-card-body .uk-list-large.role-list>li:hover{ | ||
| 71 | - background: #fff494; | ||
| 72 | - } | 82 | + .ct-card-body .uk-list-large.role-list>li:hover{ |
| 83 | + background: #fff494; | ||
| 84 | + } | ||
| 73 | 85 | ||
| 74 | - .ct-card-body .uk-list-large>li.active .ct_li_desc{ | ||
| 75 | - color: #e6e6e6; | ||
| 76 | - } | 86 | + .ct-card-body .uk-list-large>li.active .ct_li_desc{ |
| 87 | + color: #e6e6e6; | ||
| 88 | + } | ||
| 77 | 89 | ||
| 78 | - .ct-card-body .uk-list-large>li>span.uk-badge{ | ||
| 79 | - position: absolute; | ||
| 80 | - top: 17px; | ||
| 81 | - right: 25px; | ||
| 82 | - } | 90 | + .ct-card-body .uk-list-large>li>span.uk-badge{ |
| 91 | + position: absolute; | ||
| 92 | + top: 17px; | ||
| 93 | + right: 25px; | ||
| 94 | + } | ||
| 83 | 95 | ||
| 84 | - .ct-card-body .uk-list-large>li>span.role-code{ | ||
| 85 | - padding: 4px 6px; | ||
| 86 | - color: #a8a8a8; | ||
| 87 | - margin-left: 5px; | ||
| 88 | - } | 96 | + .ct-card-body .uk-list-large>li>span.role-code{ |
| 97 | + padding: 4px 6px; | ||
| 98 | + color: #a8a8a8; | ||
| 99 | + margin-left: 5px; | ||
| 100 | + } | ||
| 89 | 101 | ||
| 90 | - .top_title{ | ||
| 91 | - padding: 9px 0 5px 15px; | ||
| 92 | - border-bottom: 1px solid #ededed; | ||
| 93 | - border-left: 5px solid #FFC107; | ||
| 94 | - } | 102 | + .top_title{ |
| 103 | + padding: 9px 0 5px 15px; | ||
| 104 | + border-bottom: 1px solid #ededed; | ||
| 105 | + border-left: 5px solid #FFC107; | ||
| 106 | + } | ||
| 95 | 107 | ||
| 96 | - .top_title>.desc{ | ||
| 97 | - font-size: 13px; | ||
| 98 | - color: grey; | ||
| 99 | - margin-top: 3px; | ||
| 100 | - } | 108 | + .top_title>.desc{ |
| 109 | + font-size: 13px; | ||
| 110 | + color: grey; | ||
| 111 | + margin-top: 3px; | ||
| 112 | + } | ||
| 101 | 113 | ||
| 102 | - .left_menu_list{ | ||
| 103 | - overflow: auto; | ||
| 104 | - position: relative; | ||
| 105 | - } | 114 | + .left_menu_list{ |
| 115 | + overflow: auto; | ||
| 116 | + position: relative; | ||
| 117 | + } | ||
| 106 | 118 | ||
| 107 | - .left_menu_list .ps-container > .ps-scrollbar-x-rail, .ps-container > .ps-scrollbar-y-rail{ | ||
| 108 | - opacity: 0.6 !important; | ||
| 109 | - padding: 0 !important; | ||
| 110 | - } | 119 | + .left_menu_list .ps-container > .ps-scrollbar-x-rail, .ps-container > .ps-scrollbar-y-rail{ |
| 120 | + opacity: 0.6 !important; | ||
| 121 | + padding: 0 !important; | ||
| 122 | + } | ||
| 111 | 123 | ||
| 112 | - ._company{ | ||
| 113 | - margin: 15px 0px; | ||
| 114 | - } | ||
| 115 | - ._company>h5{ | ||
| 116 | - margin-bottom: 10px; | ||
| 117 | - font-size: 15px; | ||
| 118 | - color: #6b6b6b; | ||
| 119 | - text-indent: 12px; | ||
| 120 | - } | ||
| 121 | - ._company>._fgs>label{ | ||
| 122 | - padding: 3px 12px 3px 10px; | ||
| 123 | - display: inline-block; | ||
| 124 | - border: 1px solid gainsboro; | ||
| 125 | - border-radius: 2px; | ||
| 126 | - margin: 5px; | ||
| 127 | - font-size: 14px; | ||
| 128 | - } | ||
| 129 | - ._company>._fgs>label.active{ | ||
| 130 | - background: #1e87f0; | ||
| 131 | - color: #fff; | ||
| 132 | - } | ||
| 133 | - ._company .uk-checkbox:checked:focus, | ||
| 134 | - .line_checkbox_list .uk-checkbox:checked:focus{ | ||
| 135 | - background-color: #1e87f0 !important; | ||
| 136 | - } | ||
| 137 | - .save_icon{ | ||
| 138 | - position: absolute; | ||
| 139 | - right: 2px; | ||
| 140 | - background: #bec4c9; | ||
| 141 | - font-size: 12px; | ||
| 142 | - padding: 2px 15px; | ||
| 143 | - color: #fff; | ||
| 144 | - box-shadow: 0 5px 15px rgba(0,0,0,0.08); | ||
| 145 | - cursor: pointer; | ||
| 146 | - } | ||
| 147 | - .save_icon:hover{ | ||
| 148 | - background: #FFC107; | ||
| 149 | - } | ||
| 150 | - .data_auth_list{ | ||
| 151 | - position: relative; | ||
| 152 | - } | ||
| 153 | - #user_authorize_wrap .top_title{ | ||
| 154 | - border-left: 5px solid #cacac8; | ||
| 155 | - } | ||
| 156 | - .xd_line_list{ | ||
| 157 | - height: 37%; | ||
| 158 | - padding: 7px; | ||
| 159 | - border-bottom: 1px solid #f2f2f2; | ||
| 160 | - overflow: auto; | ||
| 161 | - position: relative; | ||
| 162 | - } | ||
| 163 | - .xd_line_list>h5{ | ||
| 164 | - color: #858585; | ||
| 165 | - margin: 5px 5px 5px 0; | ||
| 166 | - font-size: 14px; | ||
| 167 | - } | ||
| 168 | - .sub_lines{ | ||
| 169 | - padding-left: 15px; | ||
| 170 | - } | ||
| 171 | - .sub_lines>span.line_btn { | ||
| 172 | - background: #00BCD4; | ||
| 173 | - color: #fff; | ||
| 174 | - padding: 4px 9px; | ||
| 175 | - display: inline-block; | ||
| 176 | - min-width: 68px; | ||
| 177 | - text-align: center; | ||
| 178 | - margin: 5px 2px; | ||
| 179 | - box-shadow: 0 5px 9px rgba(0,0,0,0.08); | ||
| 180 | - cursor: pointer; | ||
| 181 | - font-size: 14px; | ||
| 182 | - font-family: 微软雅黑; | ||
| 183 | - } | 124 | + ._company{ |
| 125 | + margin: 15px 0px; | ||
| 126 | + } | ||
| 127 | + ._company>h5{ | ||
| 128 | + margin-bottom: 10px; | ||
| 129 | + font-size: 15px; | ||
| 130 | + color: #6b6b6b; | ||
| 131 | + text-indent: 12px; | ||
| 132 | + } | ||
| 133 | + ._company>._fgs>label{ | ||
| 134 | + padding: 3px 12px 3px 10px; | ||
| 135 | + display: inline-block; | ||
| 136 | + border: 1px solid gainsboro; | ||
| 137 | + border-radius: 2px; | ||
| 138 | + margin: 5px; | ||
| 139 | + font-size: 14px; | ||
| 140 | + } | ||
| 141 | + ._company>._fgs>label.active{ | ||
| 142 | + background: #1e87f0; | ||
| 143 | + color: #fff; | ||
| 144 | + } | ||
| 145 | + ._company .uk-checkbox:checked:focus, | ||
| 146 | + .line_checkbox_list .uk-checkbox:checked:focus{ | ||
| 147 | + background-color: #1e87f0 !important; | ||
| 148 | + } | ||
| 149 | + .save_icon{ | ||
| 150 | + position: absolute; | ||
| 151 | + right: 2px; | ||
| 152 | + background: #bec4c9; | ||
| 153 | + font-size: 12px; | ||
| 154 | + padding: 2px 15px; | ||
| 155 | + color: #fff; | ||
| 156 | + box-shadow: 0 5px 15px rgba(0,0,0,0.08); | ||
| 157 | + cursor: pointer; | ||
| 158 | + } | ||
| 159 | + .save_icon:hover{ | ||
| 160 | + background: #FFC107; | ||
| 161 | + } | ||
| 162 | + .data_auth_list{ | ||
| 163 | + position: relative; | ||
| 164 | + } | ||
| 165 | + #user_authorize_wrap .top_title{ | ||
| 166 | + border-left: 5px solid #cacac8; | ||
| 167 | + } | ||
| 168 | + .xd_line_list{ | ||
| 169 | + height: 37%; | ||
| 170 | + padding: 7px; | ||
| 171 | + border-bottom: 1px solid #f2f2f2; | ||
| 172 | + overflow: auto; | ||
| 173 | + position: relative; | ||
| 174 | + } | ||
| 175 | + .xd_line_list>h5{ | ||
| 176 | + color: #858585; | ||
| 177 | + margin: 5px 5px 5px 0; | ||
| 178 | + font-size: 14px; | ||
| 179 | + } | ||
| 180 | + .sub_lines{ | ||
| 181 | + padding-left: 15px; | ||
| 182 | + } | ||
| 183 | + .sub_lines>span.line_btn { | ||
| 184 | + background: #00BCD4; | ||
| 185 | + color: #fff; | ||
| 186 | + padding: 4px 9px; | ||
| 187 | + display: inline-block; | ||
| 188 | + min-width: 68px; | ||
| 189 | + text-align: center; | ||
| 190 | + margin: 5px 2px; | ||
| 191 | + box-shadow: 0 5px 9px rgba(0,0,0,0.08); | ||
| 192 | + cursor: pointer; | ||
| 193 | + font-size: 14px; | ||
| 194 | + font-family: 微软雅黑; | ||
| 195 | + } | ||
| 184 | 196 | ||
| 185 | - .sub_lines>span.line_btn.destroy{ | ||
| 186 | - background: #ff5c5c; | ||
| 187 | - } | 197 | + .sub_lines>span.line_btn.destroy{ |
| 198 | + background: #ff5c5c; | ||
| 199 | + } | ||
| 188 | 200 | ||
| 189 | - .sub_lines>span.line_btn.destroy:hover{ | ||
| 190 | - background: #ff7373; | ||
| 191 | - } | 201 | + .sub_lines>span.line_btn.destroy:hover{ |
| 202 | + background: #ff7373; | ||
| 203 | + } | ||
| 192 | 204 | ||
| 193 | - .sub_lines>span.line_btn:hover{ | ||
| 194 | - background: #2dd7ed; | ||
| 195 | - } | ||
| 196 | - .add_line_icon{ | ||
| 197 | - cursor: pointer; | ||
| 198 | - padding: 2px 5px; | ||
| 199 | - border-radius: 5px; | ||
| 200 | - display: inline-block; | ||
| 201 | - } | ||
| 202 | - .add_line_icon>i{ | ||
| 203 | - vertical-align: top; | ||
| 204 | - margin-top: 3px; | ||
| 205 | - } | ||
| 206 | - .add_line_icon:hover{ | ||
| 207 | - background: #ededed; | ||
| 208 | - } | ||
| 209 | - .ct_pattern_form{ | ||
| 210 | - display: inline-block; | ||
| 211 | - } | ||
| 212 | - .xd_menu_grid{ | ||
| 213 | - padding: 25px 25px 0 25px; | ||
| 214 | - height: calc(63% - 91px); | ||
| 215 | - } | ||
| 216 | - .xd_menu_grid .uk-list{ | ||
| 217 | - border: 1px solid #ededed; | ||
| 218 | - height: calc(100% - 70px); | ||
| 219 | - overflow: auto; | ||
| 220 | - position: relative; | ||
| 221 | - } | 205 | + .sub_lines>span.line_btn:hover{ |
| 206 | + background: #2dd7ed; | ||
| 207 | + } | ||
| 208 | + .add_line_icon{ | ||
| 209 | + cursor: pointer; | ||
| 210 | + padding: 2px 5px; | ||
| 211 | + border-radius: 5px; | ||
| 212 | + display: inline-block; | ||
| 213 | + } | ||
| 214 | + .add_line_icon>i{ | ||
| 215 | + vertical-align: top; | ||
| 216 | + margin-top: 3px; | ||
| 217 | + } | ||
| 218 | + .add_line_icon:hover{ | ||
| 219 | + background: #ededed; | ||
| 220 | + } | ||
| 221 | + .ct_pattern_form{ | ||
| 222 | + display: inline-block; | ||
| 223 | + } | ||
| 224 | + .xd_menu_grid{ | ||
| 225 | + padding: 25px 25px 0 25px; | ||
| 226 | + height: calc(63% - 91px); | ||
| 227 | + } | ||
| 228 | + .xd_menu_grid .uk-list{ | ||
| 229 | + border: 1px solid #ededed; | ||
| 230 | + height: calc(100% - 70px); | ||
| 231 | + overflow: auto; | ||
| 232 | + position: relative; | ||
| 233 | + } | ||
| 222 | 234 | ||
| 223 | - .xd_menu_grid .uk-list>li{ | ||
| 224 | - margin: 5px 0 !important; | ||
| 225 | - padding: 10px 0 0 10px !important; | ||
| 226 | - font-size: 14px; | ||
| 227 | - } | ||
| 228 | - .top_tools{ | ||
| 229 | - position: absolute; | ||
| 230 | - top: 15px; | ||
| 231 | - right: 25px; | ||
| 232 | - } | ||
| 233 | - .ct_field { | ||
| 234 | - display: inline-block; | ||
| 235 | - width: 240px; | ||
| 236 | - } | ||
| 237 | - .ct_field>select,.ct_field>input{ | ||
| 238 | - width: calc(100% - 60px); | ||
| 239 | - } | ||
| 240 | - .line_checkbox_list{ | ||
| 241 | - margin-top: 15px; | ||
| 242 | - } | ||
| 243 | - .line_checkbox_list>.btn{ | ||
| 244 | - padding: 5px 7px; | ||
| 245 | - border-radius: 2px; | ||
| 246 | - display: inline-block; | ||
| 247 | - margin: 4px 9px; | ||
| 248 | - font-size: 14px; | ||
| 249 | - font-family: 微软雅黑; | ||
| 250 | - border: 1px solid #d9d9d9; | ||
| 251 | - width: 100px; | ||
| 252 | - overflow: hidden; | ||
| 253 | - text-overflow: ellipsis; | ||
| 254 | - white-space: nowrap; | ||
| 255 | - } | ||
| 256 | - .line_checkbox_list>.btn>input{ | ||
| 257 | - margin-right: 5px; | ||
| 258 | - } | ||
| 259 | - .line_checkbox_list>.btn.active{ | ||
| 260 | - background: #1e87f0; | ||
| 261 | - color: #fff; | ||
| 262 | - } | 235 | + .xd_menu_grid .uk-list>li{ |
| 236 | + margin: 5px 0 !important; | ||
| 237 | + padding: 10px 0 0 10px !important; | ||
| 238 | + font-size: 14px; | ||
| 239 | + } | ||
| 240 | + .top_tools{ | ||
| 241 | + position: absolute; | ||
| 242 | + top: 15px; | ||
| 243 | + right: 25px; | ||
| 244 | + } | ||
| 245 | + .ct_field { | ||
| 246 | + display: inline-block; | ||
| 247 | + width: 240px; | ||
| 248 | + } | ||
| 249 | + .ct_field>select,.ct_field>input{ | ||
| 250 | + width: calc(100% - 60px); | ||
| 251 | + } | ||
| 252 | + .line_checkbox_list{ | ||
| 253 | + margin-top: 15px; | ||
| 254 | + } | ||
| 255 | + .line_checkbox_list>.btn{ | ||
| 256 | + padding: 5px 7px; | ||
| 257 | + border-radius: 2px; | ||
| 258 | + display: inline-block; | ||
| 259 | + margin: 4px 9px; | ||
| 260 | + font-size: 14px; | ||
| 261 | + font-family: 微软雅黑; | ||
| 262 | + border: 1px solid #d9d9d9; | ||
| 263 | + width: 100px; | ||
| 264 | + overflow: hidden; | ||
| 265 | + text-overflow: ellipsis; | ||
| 266 | + white-space: nowrap; | ||
| 267 | + } | ||
| 268 | + .line_checkbox_list>.btn>input{ | ||
| 269 | + margin-right: 5px; | ||
| 270 | + } | ||
| 271 | + .line_checkbox_list>.btn.active{ | ||
| 272 | + background: #1e87f0; | ||
| 273 | + color: #fff; | ||
| 274 | + } | ||
| 263 | 275 | ||
| 264 | - .line_checkbox_list>.btn.destroy, | ||
| 265 | - .line_checkbox_list>.btn.destroy>input{ | ||
| 266 | - border-color: #ff9595; | ||
| 267 | - color: #ff5c5c; | ||
| 268 | - } | 276 | + .line_checkbox_list>.btn.destroy, |
| 277 | + .line_checkbox_list>.btn.destroy>input{ | ||
| 278 | + border-color: #ff9595; | ||
| 279 | + color: #ff5c5c; | ||
| 280 | + } | ||
| 269 | 281 | ||
| 270 | - .line_checkbox_list>.btn.destroy.active{ | ||
| 271 | - background: #ff5c5c; | ||
| 272 | - color: #fff; | ||
| 273 | - } | 282 | + .line_checkbox_list>.btn.destroy.active{ |
| 283 | + background: #ff5c5c; | ||
| 284 | + color: #fff; | ||
| 285 | + } | ||
| 274 | 286 | ||
| 275 | - .line_checkbox_list>.btn.destroy.active>input{ | ||
| 276 | - background-color: #ff5c5c !important; | ||
| 277 | - border-color: #ff5c5c !important; | ||
| 278 | - } | 287 | + .line_checkbox_list>.btn.destroy.active>input{ |
| 288 | + background-color: #ff5c5c !important; | ||
| 289 | + border-color: #ff5c5c !important; | ||
| 290 | + } | ||
| 279 | 291 | ||
| 280 | - #role_authorize_wrap .ztree *{ | ||
| 281 | - font-size: 14px; | ||
| 282 | - } | ||
| 283 | - #role_authorize_wrap .ztree li{ | ||
| 284 | - line-height: 21px; | ||
| 285 | - } | ||
| 286 | - .loading{ | ||
| 287 | - height: 100%; | ||
| 288 | - text-align: center; | ||
| 289 | - } | ||
| 290 | - .loading .uk-spinner{ | ||
| 291 | - margin-top: 200px; | ||
| 292 | - } | ||
| 293 | - .loading circle{ | ||
| 294 | - stroke: red; | ||
| 295 | - } | 292 | + #role_authorize_wrap .ztree *{ |
| 293 | + font-size: 14px; | ||
| 294 | + } | ||
| 295 | + #role_authorize_wrap .ztree li{ | ||
| 296 | + line-height: 21px; | ||
| 297 | + } | ||
| 298 | + .loading{ | ||
| 299 | + height: 100%; | ||
| 300 | + text-align: center; | ||
| 301 | + } | ||
| 302 | + .loading .uk-spinner{ | ||
| 303 | + margin-top: 200px; | ||
| 304 | + } | ||
| 305 | + .loading circle{ | ||
| 306 | + stroke: red; | ||
| 307 | + } | ||
| 296 | 308 | ||
| 297 | - #select_line_modal .uk-checkbox:checked { | ||
| 298 | - background-color: #1e87f0; | ||
| 299 | - } | 309 | + #select_line_modal .uk-checkbox:checked { |
| 310 | + background-color: #1e87f0; | ||
| 311 | + } | ||
| 300 | </style> | 312 | </style> |
| 313 | + | ||
| 301 | </head> | 314 | </head> |
| 302 | 315 | ||
| 303 | <body> | 316 | <body> |
| @@ -342,6 +355,7 @@ | @@ -342,6 +355,7 @@ | ||
| 342 | 355 | ||
| 343 | </div> | 356 | </div> |
| 344 | </div> | 357 | </div> |
| 358 | + | ||
| 345 | </div> | 359 | </div> |
| 346 | </div> | 360 | </div> |
| 347 | 361 | ||
| @@ -359,18 +373,6 @@ | @@ -359,18 +373,6 @@ | ||
| 359 | <li class="uk-animation-fade uk-animation-fast" data-name="{{u.name}}" data-code="{{u.userNameUp}}" data-id="{{u.id}}">{{u.name}}<span class="role-code">{{u.userName}}</span></li> | 373 | <li class="uk-animation-fade uk-animation-fast" data-name="{{u.name}}" data-code="{{u.userNameUp}}" data-id="{{u.id}}">{{u.name}}<span class="role-code">{{u.userName}}</span></li> |
| 360 | {{/each}} | 374 | {{/each}} |
| 361 | </script> | 375 | </script> |
| 362 | -<script src="/metronic_v4.5.4/plugins/jquery.min.js"></script> | ||
| 363 | -<script src="/assets/js/common.js"></script> | ||
| 364 | -<script src="/assets/plugins/uk3.0/uikit.min.js"></script> | ||
| 365 | -<script src="/assets/plugins/uk3.0/uikit-icons.min.js"></script> | ||
| 366 | -<script src="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js" ></script> | ||
| 367 | -<!-- EventProxy --> | ||
| 368 | -<script src="/assets/js/eventproxy.js"></script> | ||
| 369 | -<!-- art-template 模版引擎 --> | ||
| 370 | -<script src="/assets/plugins/template.js"></script> | ||
| 371 | -<script src="/real_control_v2/assets/plugins/moment/moment.min.js"></script> | ||
| 372 | -<script src="/assets/plugins/ztree_v3/js/jquery.ztree.core.min.js"></script> | ||
| 373 | -<script src="/assets/plugins/ztree_v3/js/jquery.ztree.excheck.min.js"></script> | ||
| 374 | <script> | 376 | <script> |
| 375 | var storage = window.localStorage; | 377 | var storage = window.localStorage; |
| 376 | 378 | ||
| @@ -464,8 +466,6 @@ | @@ -464,8 +466,6 @@ | ||
| 464 | paramsRole['codeName'] = 'ROLE_ADMIN'; | 466 | paramsRole['codeName'] = 'ROLE_ADMIN'; |
| 465 | var userId=storage.getItem("editUser"); | 467 | var userId=storage.getItem("editUser"); |
| 466 | $get('/user',{id_eq:userId}, function (rs) { | 468 | $get('/user',{id_eq:userId}, function (rs) { |
| 467 | - debugger | ||
| 468 | - //if (rs) | ||
| 469 | ep.emit('query_roles', rs.content[0].roles); | 469 | ep.emit('query_roles', rs.content[0].roles); |
| 470 | }); | 470 | }); |
| 471 | 471 |
src/main/resources/static/pages/permission/user/main.html
| 1 | -<iframe src="authorize.html?origin=real_control_iframe" frameborder="0" style="height: 90%;width: 100%;"></iframe> | 1 | +<iframe src="/pages/permission/user/authorize.html?origin=real_control_iframe" frameborder="0" style="height: 90%;width: 100%;"></iframe> |
| 2 | <div class="form-actions"> | 2 | <div class="form-actions"> |
| 3 | <div class="row"> | 3 | <div class="row"> |
| 4 | <div class="col-md-offset-3 col-md-4"> | 4 | <div class="col-md-offset-3 col-md-4"> |
| 5 | - <!--<a href="main.html" class="btn green" ><i class="fa fa-check"></i> 上一步</a>--> | ||
| 6 | - <!--<button type="submit" class="btn green" ><i class="fa fa-check"></i> 提交</button>--> | ||
| 7 | - <!--<a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a>--> | ||
| 8 | </div> | 5 | </div> |
| 9 | </div> | 6 | </div> |
| 10 | </div> | 7 | </div> |
| 11 | \ No newline at end of file | 8 | \ No newline at end of file |
src/main/resources/static/real_control_v2/css/line_schedule.css
| @@ -566,6 +566,12 @@ dl.relevance-active.intimity dd.tl-qrlb{ | @@ -566,6 +566,12 @@ dl.relevance-active.intimity dd.tl-qrlb{ | ||
| 566 | color: #f8e9cd; | 566 | color: #f8e9cd; |
| 567 | } | 567 | } |
| 568 | 568 | ||
| 569 | +dl.relevance-active dd.tl-wfyd, | ||
| 570 | +dl.relevance-active.intimity dd.tl-wfyd{ | ||
| 571 | + background: linear-gradient(to right, rgb( 246,193,10), rgb(226, 226, 168), #8baabf) !important; | ||
| 572 | + color: #f8e9cd; | ||
| 573 | +} | ||
| 574 | + | ||
| 569 | dl.relevance-active dd.tl-wd, | 575 | dl.relevance-active dd.tl-wd, |
| 570 | dl.relevance-active.intimity dd.tl-wd{ | 576 | dl.relevance-active.intimity dd.tl-wd{ |
| 571 | background: linear-gradient(to right, #ffff00, rgb(226, 226, 168), rgb(139, 170, 191)) !important; | 577 | background: linear-gradient(to right, #ffff00, rgb(226, 226, 168), rgb(139, 170, 191)) !important; |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lp_change.html
| @@ -389,21 +389,20 @@ | @@ -389,21 +389,20 @@ | ||
| 389 | rightIdx = rightIdx.substr(0, rightIdx.length - 1); | 389 | rightIdx = rightIdx.substr(0, rightIdx.length - 1); |
| 390 | 390 | ||
| 391 | var type = $(this).data('type'); | 391 | var type = $(this).data('type'); |
| 392 | + reLoadCurrPageData(); | ||
| 392 | gb_common.$post('/realSchedule/lpChangeMulti', {leftIdx: leftIdx, rightIdx: rightIdx, type: type}, function (rs) { | 393 | gb_common.$post('/realSchedule/lpChangeMulti', {leftIdx: leftIdx, rightIdx: rightIdx, type: type}, function (rs) { |
| 393 | console.log('rs', rs); | 394 | console.log('rs', rs); |
| 394 | - debugger | ||
| 395 | notify_succ("操作成功!!"); | 395 | notify_succ("操作成功!!"); |
| 396 | if(rs.ts) | 396 | if(rs.ts) |
| 397 | gb_schedule_table.updateSchedule(rs.ts); | 397 | gb_schedule_table.updateSchedule(rs.ts); |
| 398 | 398 | ||
| 399 | - reLoadCurrPageData(); | 399 | + |
| 400 | 400 | ||
| 401 | }); | 401 | }); |
| 402 | }); | 402 | }); |
| 403 | 403 | ||
| 404 | 404 | ||
| 405 | function reLoadCurrPageData(){ | 405 | function reLoadCurrPageData(){ |
| 406 | - debugger | ||
| 407 | $('[name=lineSelect]', modal).each(function () { | 406 | $('[name=lineSelect]', modal).each(function () { |
| 408 | var array = gb_common.get_vals(gb_schedule_table.findScheduleByLine($(this).val())).sort(gb_schedule_table.schedule_sort); | 407 | var array = gb_common.get_vals(gb_schedule_table.findScheduleByLine($(this).val())).sort(gb_schedule_table.schedule_sort); |
| 409 | //按路牌分组 | 408 | //按路牌分组 |
src/main/resources/static/real_control_v2/fragments/line_schedule/layout.html
| @@ -39,6 +39,7 @@ | @@ -39,6 +39,7 @@ | ||
| 39 | <span class="tl-xxfc">消息发出</span> | 39 | <span class="tl-xxfc">消息发出</span> |
| 40 | <span class="tl-xxsd">消息收到</span> | 40 | <span class="tl-xxsd">消息收到</span> |
| 41 | <span class="tl-xxrd">消息阅读</span> | 41 | <span class="tl-xxrd">消息阅读</span> |
| 42 | + <span class="tl-wfyd">无发有到</span> | ||
| 42 | </div> | 43 | </div> |
| 43 | </div> | 44 | </div> |
| 44 | </script> | 45 | </script> |
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
| @@ -186,7 +186,7 @@ var gb_schedule_table = (function () { | @@ -186,7 +186,7 @@ var gb_schedule_table = (function () { | ||
| 186 | }; | 186 | }; |
| 187 | //无发有到时间 | 187 | //无发有到时间 |
| 188 | var wfydcolor=function (sch) { | 188 | var wfydcolor=function (sch) { |
| 189 | - if (sch.qdzArrDatesj!=''&&sch.qdzArrDatesj!=null&&sch.fcsjActual==null) { | 189 | + if (sch.fcsjActual==null&&sch.zdsjActual!=null&&sch.zdsjActual!=''&&sch.status!=-1) {//sch.qdzArrDatesj!=''&&sch.qdzArrDatesj!=null&& |
| 190 | sch.status=4; | 190 | sch.status=4; |
| 191 | } | 191 | } |
| 192 | } | 192 | } |
| @@ -274,7 +274,6 @@ var gb_schedule_table = (function () { | @@ -274,7 +274,6 @@ var gb_schedule_table = (function () { | ||
| 274 | * @param lineCode | 274 | * @param lineCode |
| 275 | */ | 275 | */ |
| 276 | var reLoadAndRefresh = function (lineCode) { | 276 | var reLoadAndRefresh = function (lineCode) { |
| 277 | - debugger | ||
| 278 | $.get('/realSchedule/lines', { | 277 | $.get('/realSchedule/lines', { |
| 279 | lines: lineCode + ',' | 278 | lines: lineCode + ',' |
| 280 | }, function (rs) { | 279 | }, function (rs) { |
| @@ -387,8 +386,8 @@ var gb_schedule_table = (function () { | @@ -387,8 +386,8 @@ var gb_schedule_table = (function () { | ||
| 387 | else | 386 | else |
| 388 | $(dds[8]).html(''); | 387 | $(dds[8]).html(''); |
| 389 | if (sch.lpChange==1) { | 388 | if (sch.lpChange==1) { |
| 390 | - var d8html=$(dds[8]).html(); | ||
| 391 | - $(dds[8]).html(d8html+'<span class="uk-badge uk-badge-success out">换</span>'); | 389 | + var d8html=$(dds[5]).html(); |
| 390 | + $(dds[5]).html(d8html+'<span class="uk-badge uk-badge-success out">换</span>'); | ||
| 392 | } | 391 | } |
| 393 | 392 | ||
| 394 | //信号状态标记 | 393 | //信号状态标记 |