Commit 5b999d2fc1922b68ad49f424145db8acf2fc0323
1 parent
4207811b
first commit
Showing
50 changed files
with
3028 additions
and
1 deletions
.gitignore
0 → 100644
README.md
bin/com/bsth/Application.class
0 → 100644
No preview for this file type
bin/com/bsth/StartCommand.class
0 → 100644
No preview for this file type
bin/com/bsth/common/ResponseCode.class
0 → 100644
No preview for this file type
bin/com/bsth/entity/ChildTaskPlan.class
0 → 100644
No preview for this file type
bin/com/bsth/entity/LineConfig.class
0 → 100644
No preview for this file type
bin/com/bsth/entity/ScheduleRealInfo.class
0 → 100644
No preview for this file type
bin/com/bsth/entity/result/CalcWaybill.class
0 → 100644
No preview for this file type
bin/com/bsth/entity/result/WorkingHours_jsy.class
0 → 100644
No preview for this file type
bin/com/bsth/handler/UserCarCountHandler$1.class
0 → 100644
No preview for this file type
bin/com/bsth/handler/UserCarCountHandler$2.class
0 → 100644
No preview for this file type
bin/com/bsth/handler/UserCarCountHandler.class
0 → 100644
No preview for this file type
bin/com/bsth/repository/ScheduleRealInfoRepository.class
0 → 100644
No preview for this file type
bin/com/bsth/service/LineConfigService.class
0 → 100644
No preview for this file type
bin/com/bsth/service/ScheduleRealInfoService.class
0 → 100644
No preview for this file type
bin/com/bsth/service/impl/LineConfigServiceImpl.class
0 → 100644
No preview for this file type
bin/com/bsth/service/impl/ScheduleRealInfoServiceImpl$1.class
0 → 100644
No preview for this file type
bin/com/bsth/service/impl/ScheduleRealInfoServiceImpl.class
0 → 100644
No preview for this file type
bin/com/bsth/thread/WaybillCalcThrad.class
0 → 100644
No preview for this file type
bin/com/bsth/util/Arith.class
0 → 100644
No preview for this file type
bin/com/bsth/util/ConfigUtil.class
0 → 100644
No preview for this file type
bin/com/bsth/util/ConvertUtil.class
0 → 100644
No preview for this file type
bin/com/bsth/util/Tools.class
0 → 100644
No preview for this file type
pom.xml
0 → 100644
| 1 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 2 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
| 3 | + | ||
| 4 | + <modelVersion>4.0.0</modelVersion> | ||
| 5 | + <groupId>com.bsth</groupId> | ||
| 6 | + <artifactId>control_calculator</artifactId> | ||
| 7 | + <version>0.0.1-SNAPSHOT</version> | ||
| 8 | + <packaging>jar</packaging> | ||
| 9 | + | ||
| 10 | + <parent> | ||
| 11 | + <groupId>org.springframework.boot</groupId> | ||
| 12 | + <artifactId>spring-boot-starter-parent</artifactId> | ||
| 13 | + <version>1.5.2.RELEASE</version> | ||
| 14 | + </parent> | ||
| 15 | + | ||
| 16 | + <dependencies> | ||
| 17 | + | ||
| 18 | + <dependency> | ||
| 19 | + <groupId>org.springframework.boot</groupId> | ||
| 20 | + <artifactId>spring-boot-starter-web</artifactId> | ||
| 21 | + </dependency> | ||
| 22 | + | ||
| 23 | + <dependency> | ||
| 24 | + <groupId>org.springframework.boot</groupId> | ||
| 25 | + <artifactId>spring-boot-starter-tomcat</artifactId> | ||
| 26 | + <scope>provided</scope> | ||
| 27 | + </dependency> | ||
| 28 | + | ||
| 29 | + <dependency> | ||
| 30 | + <groupId>org.springframework.boot</groupId> | ||
| 31 | + <artifactId>spring-boot-starter-data-jpa</artifactId> | ||
| 32 | + </dependency> | ||
| 33 | + <dependency> | ||
| 34 | + <groupId>org.springframework.boot</groupId> | ||
| 35 | + <artifactId>spring-boot-starter-aop</artifactId> | ||
| 36 | + </dependency> | ||
| 37 | + | ||
| 38 | + <dependency> | ||
| 39 | + <groupId>org.springframework.boot</groupId> | ||
| 40 | + <artifactId>spring-boot-starter-data-redis</artifactId> | ||
| 41 | + </dependency> | ||
| 42 | + | ||
| 43 | + <dependency> | ||
| 44 | + <groupId>org.springframework</groupId> | ||
| 45 | + <artifactId>spring-context-support</artifactId> | ||
| 46 | + </dependency> | ||
| 47 | + <dependency> | ||
| 48 | + <groupId>mysql</groupId> | ||
| 49 | + <artifactId>mysql-connector-java</artifactId> | ||
| 50 | + </dependency> | ||
| 51 | + | ||
| 52 | + <dependency> | ||
| 53 | + <groupId>joda-time</groupId> | ||
| 54 | + <artifactId>joda-time</artifactId> | ||
| 55 | + </dependency> | ||
| 56 | + <dependency> | ||
| 57 | + <groupId>com.alibaba</groupId> | ||
| 58 | + <artifactId>fastjson</artifactId> | ||
| 59 | + <version>1.2.4</version> | ||
| 60 | + </dependency> | ||
| 61 | + | ||
| 62 | + <dependency> | ||
| 63 | + <groupId>org.apache.httpcomponents</groupId> | ||
| 64 | + <artifactId>httpclient</artifactId> | ||
| 65 | + </dependency> | ||
| 66 | + | ||
| 67 | + <dependency> | ||
| 68 | + <groupId>commons-dbcp</groupId> | ||
| 69 | + <artifactId>commons-dbcp</artifactId> | ||
| 70 | + </dependency> | ||
| 71 | + <dependency> | ||
| 72 | + <groupId>commons-lang</groupId> | ||
| 73 | + <artifactId>commons-lang</artifactId> | ||
| 74 | + <version>2.6</version> | ||
| 75 | + </dependency> | ||
| 76 | + <dependency> | ||
| 77 | + <groupId>org.apache.commons</groupId> | ||
| 78 | + <artifactId>commons-lang3</artifactId> | ||
| 79 | + <version>3.4</version> | ||
| 80 | + </dependency> | ||
| 81 | + <dependency> | ||
| 82 | + <groupId>commons-fileupload</groupId> | ||
| 83 | + <artifactId>commons-fileupload</artifactId> | ||
| 84 | + <version>1.2.2</version> | ||
| 85 | + </dependency> | ||
| 86 | + <dependency> | ||
| 87 | + <groupId>commons-io</groupId> | ||
| 88 | + <artifactId>commons-io</artifactId> | ||
| 89 | + <version>2.4</version> | ||
| 90 | + </dependency> | ||
| 91 | + <dependency> | ||
| 92 | + <groupId>org.codehaus.janino</groupId> | ||
| 93 | + <artifactId>janino</artifactId> | ||
| 94 | + </dependency> | ||
| 95 | + | ||
| 96 | + <dependency> | ||
| 97 | + <groupId>org.apache.poi</groupId> | ||
| 98 | + <artifactId>poi</artifactId> | ||
| 99 | + <version>3.13</version> | ||
| 100 | + </dependency> | ||
| 101 | + | ||
| 102 | + <dependency> | ||
| 103 | + <groupId>com.google.guava</groupId> | ||
| 104 | + <artifactId>guava</artifactId> | ||
| 105 | + <version>19.0</version> | ||
| 106 | + </dependency> | ||
| 107 | + | ||
| 108 | + <dependency> | ||
| 109 | + <groupId>c3p0</groupId> | ||
| 110 | + <artifactId>c3p0</artifactId> | ||
| 111 | + <version>0.9.1.2</version> | ||
| 112 | + </dependency> | ||
| 113 | + | ||
| 114 | + <dependency> | ||
| 115 | + <groupId>com.fasterxml.jackson.jaxrs</groupId> | ||
| 116 | + <artifactId>jackson-jaxrs-json-provider</artifactId> | ||
| 117 | + <version>2.8.7</version> | ||
| 118 | + </dependency> | ||
| 119 | + | ||
| 120 | + <dependency> | ||
| 121 | + <groupId>org.eclipse.jetty</groupId> | ||
| 122 | + <artifactId>jetty-util</artifactId> | ||
| 123 | + <version>8.1.15.v20140411</version> | ||
| 124 | + </dependency> | ||
| 125 | + </dependencies> | ||
| 126 | + | ||
| 127 | + <build> | ||
| 128 | + <plugins> | ||
| 129 | + <plugin> | ||
| 130 | + <artifactId>maven-compiler-plugin</artifactId> | ||
| 131 | + <version>2.3.2</version><!--$NO-MVN-MAN-VER$ --> | ||
| 132 | + <configuration> | ||
| 133 | + <source>1.7</source> | ||
| 134 | + <target>1.7</target> | ||
| 135 | + </configuration> | ||
| 136 | + </plugin> | ||
| 137 | + <plugin> | ||
| 138 | + <artifactId>maven-war-plugin</artifactId> | ||
| 139 | + <version>2.2</version><!--$NO-MVN-MAN-VER$ --> | ||
| 140 | + <configuration> | ||
| 141 | + <failOnMissingWebXml>false</failOnMissingWebXml> | ||
| 142 | + </configuration> | ||
| 143 | + </plugin> | ||
| 144 | + <plugin> | ||
| 145 | + <groupId>org.springframework.boot</groupId> | ||
| 146 | + <artifactId>spring-boot-maven-plugin</artifactId> | ||
| 147 | + </plugin> | ||
| 148 | + </plugins> | ||
| 149 | + <resources> | ||
| 150 | + <resource> | ||
| 151 | + <directory>src/main/resources</directory> | ||
| 152 | + <filtering>false</filtering> | ||
| 153 | + </resource> | ||
| 154 | + </resources> | ||
| 155 | + </build> | ||
| 156 | + <repositories> | ||
| 157 | + <repository> | ||
| 158 | + <id>spring-snapshots</id> | ||
| 159 | + <url>http://repo.spring.io/snapshot</url> | ||
| 160 | + <snapshots> | ||
| 161 | + <enabled>true</enabled> | ||
| 162 | + </snapshots> | ||
| 163 | + </repository> | ||
| 164 | + <repository> | ||
| 165 | + <id>spring-milestones</id> | ||
| 166 | + <url>http://repo.spring.io/milestone</url> | ||
| 167 | + </repository> | ||
| 168 | + </repositories> | ||
| 169 | + <pluginRepositories> | ||
| 170 | + <pluginRepository> | ||
| 171 | + <id>spring-snapshots</id> | ||
| 172 | + <url>http://repo.spring.io/snapshot</url> | ||
| 173 | + </pluginRepository> | ||
| 174 | + <pluginRepository> | ||
| 175 | + <id>spring-milestones</id> | ||
| 176 | + <url>http://repo.spring.io/milestone</url> | ||
| 177 | + </pluginRepository> | ||
| 178 | + </pluginRepositories> | ||
| 179 | + | ||
| 180 | + <properties> | ||
| 181 | + <start-class>com.bsth.Application</start-class> | ||
| 182 | + </properties> | ||
| 183 | +</project> |
src/main/java/com/bsth/Application.java
0 → 100644
| 1 | +package com.bsth; | ||
| 2 | + | ||
| 3 | +import org.springframework.boot.SpringApplication; | ||
| 4 | +import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
| 5 | +import org.springframework.boot.web.support.SpringBootServletInitializer; | ||
| 6 | + | ||
| 7 | +@SpringBootApplication | ||
| 8 | +public class Application extends SpringBootServletInitializer { | ||
| 9 | + | ||
| 10 | + public static void main(String[] args) throws Exception { | ||
| 11 | + SpringApplication.run(Application.class, args); | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | +} | ||
| 0 | \ No newline at end of file | 15 | \ No newline at end of file |
src/main/java/com/bsth/StartCommand.java
0 → 100644
| 1 | +package com.bsth; | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +import com.bsth.thread.WaybillCalcThrad; | ||
| 5 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 6 | +import org.springframework.boot.CommandLineRunner; | ||
| 7 | +import org.springframework.stereotype.Component; | ||
| 8 | + | ||
| 9 | +import java.util.concurrent.Executors; | ||
| 10 | +import java.util.concurrent.ScheduledExecutorService; | ||
| 11 | +import java.util.concurrent.TimeUnit; | ||
| 12 | + | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * 随应用启动运行 | ||
| 16 | + * @author PanZhao | ||
| 17 | + * | ||
| 18 | + */ | ||
| 19 | +@Component | ||
| 20 | +public class StartCommand implements CommandLineRunner{ | ||
| 21 | + | ||
| 22 | + public static ScheduledExecutorService mainServices = Executors.newScheduledThreadPool(2); | ||
| 23 | + | ||
| 24 | + @Autowired | ||
| 25 | + WaybillCalcThrad waybillCalcThrad; | ||
| 26 | + | ||
| 27 | + @Override | ||
| 28 | + public void run(String... arg0){ | ||
| 29 | + | ||
| 30 | + try { | ||
| 31 | + mainServices.scheduleWithFixedDelay(waybillCalcThrad, 60*30, 60*30, TimeUnit.SECONDS); | ||
| 32 | + } catch (Exception e) { | ||
| 33 | + e.printStackTrace(); | ||
| 34 | + } | ||
| 35 | + } | ||
| 36 | +} |
src/main/java/com/bsth/common/ResponseCode.java
0 → 100644
| 1 | +package com.bsth.common; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * | ||
| 5 | + * @ClassName: ResponseCode | ||
| 6 | + * @Description: TODO(响应状态码) | ||
| 7 | + * @author PanZhao | ||
| 8 | + * @date 2016年3月18日 下午11:12:08 | ||
| 9 | + * | ||
| 10 | + */ | ||
| 11 | +public enum ResponseCode { | ||
| 12 | + | ||
| 13 | + SUCCESS("操作成功", 200), | ||
| 14 | + NO_PERMISSION("无资源访问权限", 403), | ||
| 15 | + NO_AUTHENTICATION("客户端未授权", 407), | ||
| 16 | + ERROR("服务器异常", 500); | ||
| 17 | + | ||
| 18 | + private String text; | ||
| 19 | + private int code; | ||
| 20 | + | ||
| 21 | + ResponseCode(String text, int code) { | ||
| 22 | + this.text = text; | ||
| 23 | + this.code = code; | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | + @Override | ||
| 27 | + public String toString() { | ||
| 28 | + return this.code + ""; | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + public String getText() { | ||
| 32 | + return this.text; | ||
| 33 | + } | ||
| 34 | +} |
src/main/java/com/bsth/entity/ChildTaskPlan.java
0 → 100644
| 1 | +package com.bsth.entity; | ||
| 2 | + | ||
| 3 | +import com.fasterxml.jackson.annotation.JsonIgnore; | ||
| 4 | + | ||
| 5 | +import javax.persistence.*; | ||
| 6 | +import java.util.Date; | ||
| 7 | + | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * | ||
| 11 | + * @ClassName: ChildTaskPlan | ||
| 12 | + * @Description: TODO(子任务) | ||
| 13 | + * @author PanZhao | ||
| 14 | + * @date 2016年6月20日 上午11:22:22 | ||
| 15 | + * | ||
| 16 | + */ | ||
| 17 | +@Entity | ||
| 18 | +@Table(name = "bsth_c_s_child_task") | ||
| 19 | +@NamedEntityGraphs({ | ||
| 20 | + @NamedEntityGraph(name = "childTaskPlan_schedule", attributeNodes = { | ||
| 21 | + @NamedAttributeNode("schedule") | ||
| 22 | + }) | ||
| 23 | +}) | ||
| 24 | +public class ChildTaskPlan { | ||
| 25 | + | ||
| 26 | + @Id | ||
| 27 | + @GeneratedValue | ||
| 28 | + private Long id; | ||
| 29 | + | ||
| 30 | + /** | ||
| 31 | + * 任务类型1 | ||
| 32 | + * 正常,临加 | ||
| 33 | + */ | ||
| 34 | + private String type1; | ||
| 35 | + | ||
| 36 | + /** | ||
| 37 | + * 任务类型2 | ||
| 38 | + */ | ||
| 39 | + private String type2; | ||
| 40 | + | ||
| 41 | + /** | ||
| 42 | + * 起点 | ||
| 43 | + */ | ||
| 44 | + private String startStation; | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 起点站名称 | ||
| 48 | + */ | ||
| 49 | + private String startStationName; | ||
| 50 | + | ||
| 51 | + /** | ||
| 52 | + * 终点 | ||
| 53 | + */ | ||
| 54 | + private String endStation; | ||
| 55 | + | ||
| 56 | + /** | ||
| 57 | + * 终点站名称 | ||
| 58 | + */ | ||
| 59 | + private String endStationName; | ||
| 60 | + | ||
| 61 | + /** | ||
| 62 | + * 里程类型 | ||
| 63 | + */ | ||
| 64 | + private String mileageType; | ||
| 65 | + | ||
| 66 | + /** | ||
| 67 | + * 里程 | ||
| 68 | + */ | ||
| 69 | + private Float mileage; | ||
| 70 | + | ||
| 71 | + /** | ||
| 72 | + * 开始时间 HH:mm | ||
| 73 | + */ | ||
| 74 | + private String startDate; | ||
| 75 | + | ||
| 76 | + /** | ||
| 77 | + * 结束时间 HH:mm | ||
| 78 | + */ | ||
| 79 | + private String endDate; | ||
| 80 | + | ||
| 81 | + /** | ||
| 82 | + * 是否烂班 | ||
| 83 | + */ | ||
| 84 | + private boolean destroy; | ||
| 85 | + | ||
| 86 | + /** | ||
| 87 | + * 烂班原因 -烂班时,该字段仍有值并 =reason | ||
| 88 | + */ | ||
| 89 | + private String destroyReason; | ||
| 90 | + | ||
| 91 | + /** | ||
| 92 | + * 包括 烂班原因、进出场原因、换车原因 等 | ||
| 93 | + */ | ||
| 94 | + private String reason; | ||
| 95 | + | ||
| 96 | + /** | ||
| 97 | + * 车辆 如果为空,继承主任务 | ||
| 98 | + */ | ||
| 99 | + private String nbbm; | ||
| 100 | + | ||
| 101 | + /** | ||
| 102 | + * 为true 则无售票员, 否则继承主任务 | ||
| 103 | + */ | ||
| 104 | + private boolean noClerk; | ||
| 105 | + | ||
| 106 | + /** 创建日期 */ | ||
| 107 | + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") | ||
| 108 | + private Date createDate; | ||
| 109 | + | ||
| 110 | + /** | ||
| 111 | + * 主排班计划 | ||
| 112 | + */ | ||
| 113 | + @JsonIgnore | ||
| 114 | + @ManyToOne(fetch = FetchType.LAZY) | ||
| 115 | + @JoinColumn(name = "schedule") | ||
| 116 | + private ScheduleRealInfo schedule; | ||
| 117 | + | ||
| 118 | + private String remarks; | ||
| 119 | + | ||
| 120 | + public Long getId() { | ||
| 121 | + return id; | ||
| 122 | + } | ||
| 123 | + | ||
| 124 | + public void setId(Long id) { | ||
| 125 | + this.id = id; | ||
| 126 | + } | ||
| 127 | + | ||
| 128 | + public String getType1() { | ||
| 129 | + return type1; | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + public void setType1(String type1) { | ||
| 133 | + this.type1 = type1; | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + public String getType2() { | ||
| 137 | + return type2; | ||
| 138 | + } | ||
| 139 | + | ||
| 140 | + public void setType2(String type2) { | ||
| 141 | + this.type2 = type2; | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + public String getStartStation() { | ||
| 145 | + return startStation; | ||
| 146 | + } | ||
| 147 | + | ||
| 148 | + public void setStartStation(String startStation) { | ||
| 149 | + this.startStation = startStation; | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + public String getEndStation() { | ||
| 153 | + return endStation; | ||
| 154 | + } | ||
| 155 | + | ||
| 156 | + public void setEndStation(String endStation) { | ||
| 157 | + this.endStation = endStation; | ||
| 158 | + } | ||
| 159 | + | ||
| 160 | + public String getMileageType() { | ||
| 161 | + return mileageType; | ||
| 162 | + } | ||
| 163 | + | ||
| 164 | + public void setMileageType(String mileageType) { | ||
| 165 | + this.mileageType = mileageType; | ||
| 166 | + } | ||
| 167 | + | ||
| 168 | + public Float getMileage() { | ||
| 169 | + return mileage; | ||
| 170 | + } | ||
| 171 | + | ||
| 172 | + public void setMileage(Float mileage) { | ||
| 173 | + this.mileage = mileage; | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + public String getStartDate() { | ||
| 177 | + return startDate; | ||
| 178 | + } | ||
| 179 | + | ||
| 180 | + public void setStartDate(String startDate) { | ||
| 181 | + this.startDate = startDate; | ||
| 182 | + } | ||
| 183 | + | ||
| 184 | + public String getEndDate() { | ||
| 185 | + return endDate; | ||
| 186 | + } | ||
| 187 | + | ||
| 188 | + public void setEndDate(String endDate) { | ||
| 189 | + this.endDate = endDate; | ||
| 190 | + } | ||
| 191 | + | ||
| 192 | + public boolean isDestroy() { | ||
| 193 | + return destroy; | ||
| 194 | + } | ||
| 195 | + | ||
| 196 | + public void setDestroy(boolean destroy) { | ||
| 197 | + this.destroy = destroy; | ||
| 198 | + } | ||
| 199 | + | ||
| 200 | + public String getDestroyReason() { | ||
| 201 | + return destroyReason; | ||
| 202 | + } | ||
| 203 | + | ||
| 204 | + public void setDestroyReason(String destroyReason) { | ||
| 205 | + this.destroyReason = destroyReason; | ||
| 206 | + } | ||
| 207 | + | ||
| 208 | + public ScheduleRealInfo getSchedule() { | ||
| 209 | + return schedule; | ||
| 210 | + } | ||
| 211 | + | ||
| 212 | + public void setSchedule(ScheduleRealInfo schedule) { | ||
| 213 | + this.schedule = schedule; | ||
| 214 | + } | ||
| 215 | + | ||
| 216 | + public String getRemarks() { | ||
| 217 | + return remarks; | ||
| 218 | + } | ||
| 219 | + | ||
| 220 | + public void setRemarks(String remarks) { | ||
| 221 | + this.remarks = remarks; | ||
| 222 | + } | ||
| 223 | + | ||
| 224 | + public String getStartStationName() { | ||
| 225 | + return startStationName; | ||
| 226 | + } | ||
| 227 | + | ||
| 228 | + public void setStartStationName(String startStationName) { | ||
| 229 | + this.startStationName = startStationName; | ||
| 230 | + } | ||
| 231 | + | ||
| 232 | + public String getEndStationName() { | ||
| 233 | + return endStationName; | ||
| 234 | + } | ||
| 235 | + | ||
| 236 | + public void setEndStationName(String endStationName) { | ||
| 237 | + this.endStationName = endStationName; | ||
| 238 | + } | ||
| 239 | + | ||
| 240 | + @Override | ||
| 241 | + public int hashCode() { | ||
| 242 | + return ("cTask" + this.getId() + this.getSchedule().getId()).hashCode(); | ||
| 243 | + } | ||
| 244 | + | ||
| 245 | + @Override | ||
| 246 | + public boolean equals(Object obj) { | ||
| 247 | + return this.id.equals(((ChildTaskPlan)obj).getId()); | ||
| 248 | + } | ||
| 249 | + | ||
| 250 | + public Date getCreateDate() { | ||
| 251 | + return createDate; | ||
| 252 | + } | ||
| 253 | + | ||
| 254 | + public void setCreateDate(Date createDate) { | ||
| 255 | + this.createDate = createDate; | ||
| 256 | + } | ||
| 257 | + | ||
| 258 | + public String getReason() { | ||
| 259 | + return reason; | ||
| 260 | + } | ||
| 261 | + | ||
| 262 | + public void setReason(String reason) { | ||
| 263 | + this.reason = reason; | ||
| 264 | + } | ||
| 265 | + | ||
| 266 | + public String getNbbm() { | ||
| 267 | + return nbbm; | ||
| 268 | + } | ||
| 269 | + | ||
| 270 | + public void setNbbm(String nbbm) { | ||
| 271 | + this.nbbm = nbbm; | ||
| 272 | + } | ||
| 273 | + | ||
| 274 | + public boolean isNoClerk() { | ||
| 275 | + return noClerk; | ||
| 276 | + } | ||
| 277 | + | ||
| 278 | + public void setNoClerk(boolean noClerk) { | ||
| 279 | + this.noClerk = noClerk; | ||
| 280 | + } | ||
| 281 | +} |
src/main/java/com/bsth/entity/LineConfig.java
0 → 100644
| 1 | +package com.bsth.entity; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * | ||
| 5 | + * @ClassName: LineConfig | ||
| 6 | + * @Description: TODO(线调 线路相关配置信息) | ||
| 7 | + * @author PanZhao | ||
| 8 | + * @date 2016年8月15日 下午1:57:56 | ||
| 9 | + * | ||
| 10 | + */ | ||
| 11 | +public class LineConfig { | ||
| 12 | + | ||
| 13 | + private Integer id; | ||
| 14 | + | ||
| 15 | + /** | ||
| 16 | + * 线路编码 | ||
| 17 | + */ | ||
| 18 | + private String lineCode; | ||
| 19 | + | ||
| 20 | + /** 开始运营时间 HH:mm */ | ||
| 21 | + private String startOpt; | ||
| 22 | + | ||
| 23 | + /** 出场时间设置 0:真实出场(设备离开缓冲区时间) 1:请求出场时间 2:出站即出场 */ | ||
| 24 | + private int outConfig; | ||
| 25 | + | ||
| 26 | + /** 出站既出场 对应的停车场 */ | ||
| 27 | + private String twinsPark; | ||
| 28 | + | ||
| 29 | + /** 出站既出场 对应的起点站 */ | ||
| 30 | + private String twinsStation; | ||
| 31 | + | ||
| 32 | + | ||
| 33 | + public String getStartOpt() { | ||
| 34 | + return startOpt; | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + public void setStartOpt(String startOpt) { | ||
| 38 | + this.startOpt = startOpt; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public int getOutConfig() { | ||
| 42 | + return outConfig; | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + public void setOutConfig(int outConfig) { | ||
| 46 | + this.outConfig = outConfig; | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + public String getTwinsPark() { | ||
| 50 | + return twinsPark; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + public void setTwinsPark(String twinsPark) { | ||
| 54 | + this.twinsPark = twinsPark; | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + public String getTwinsStation() { | ||
| 58 | + return twinsStation; | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + public void setTwinsStation(String twinsStation) { | ||
| 62 | + this.twinsStation = twinsStation; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + public String getLineCode() { | ||
| 66 | + return lineCode; | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + public void setLineCode(String lineCode) { | ||
| 70 | + this.lineCode = lineCode; | ||
| 71 | + } | ||
| 72 | +} |
src/main/java/com/bsth/entity/ScheduleRealInfo.java
0 → 100644
| 1 | +package com.bsth.entity; | ||
| 2 | + | ||
| 3 | +import org.apache.commons.lang3.StringUtils; | ||
| 4 | +import org.joda.time.format.DateTimeFormat; | ||
| 5 | +import org.joda.time.format.DateTimeFormatter; | ||
| 6 | + | ||
| 7 | +import javax.persistence.*; | ||
| 8 | +import java.io.Serializable; | ||
| 9 | +import java.util.Date; | ||
| 10 | +import java.util.HashSet; | ||
| 11 | +import java.util.Set; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * 实际排班计划明细。 | ||
| 15 | + */ | ||
| 16 | +@Entity | ||
| 17 | +@Table(name = "bsth_c_s_sp_info_real") | ||
| 18 | +@NamedEntityGraphs({ | ||
| 19 | + @NamedEntityGraph(name = "scheduleRealInfo_cTasks", attributeNodes = { | ||
| 20 | + @NamedAttributeNode("cTasks") | ||
| 21 | + }) | ||
| 22 | +}) | ||
| 23 | +public class ScheduleRealInfo implements Serializable{ | ||
| 24 | + | ||
| 25 | + | ||
| 26 | + | ||
| 27 | + /** 主键Id */ | ||
| 28 | + @Id | ||
| 29 | + private Long id; | ||
| 30 | + | ||
| 31 | + /** 计划ID */ | ||
| 32 | + private Long spId; | ||
| 33 | + | ||
| 34 | + /** 排班计划日期 */ | ||
| 35 | + private Date scheduleDate; | ||
| 36 | + private String scheduleDateStr; | ||
| 37 | + | ||
| 38 | + /** 真实执行时间 yyyy-MM-dd */ | ||
| 39 | + private String realExecDate; | ||
| 40 | + | ||
| 41 | + /** 线路名称 */ | ||
| 42 | + private String xlName; | ||
| 43 | + /** 线路编码 */ | ||
| 44 | + private String xlBm; | ||
| 45 | + | ||
| 46 | + /** 路牌名称 */ | ||
| 47 | + private String lpName; | ||
| 48 | + | ||
| 49 | + /** 车辆自编号 */ | ||
| 50 | + private String clZbh; | ||
| 51 | + | ||
| 52 | + /** 驾驶员工号 */ | ||
| 53 | + private String jGh; | ||
| 54 | + /** 驾驶员名字 */ | ||
| 55 | + private String jName; | ||
| 56 | + /** 售票员工号 */ | ||
| 57 | + private String sGh; | ||
| 58 | + /** 售票员名字 */ | ||
| 59 | + private String sName; | ||
| 60 | + | ||
| 61 | + /** 线路方向 */ | ||
| 62 | + private String xlDir; | ||
| 63 | + /** 起点站code*/ | ||
| 64 | + private String qdzCode; | ||
| 65 | + /** 起点站名字 */ | ||
| 66 | + private String qdzName; | ||
| 67 | + | ||
| 68 | + /** 终点站code*/ | ||
| 69 | + private String zdzCode; | ||
| 70 | + /** 终点站名字 */ | ||
| 71 | + private String zdzName; | ||
| 72 | + | ||
| 73 | + /** 计划发车时间(格式 HH:mm) */ | ||
| 74 | + private String fcsj; | ||
| 75 | + /** 计划发车时间戳*/ | ||
| 76 | + @Transient | ||
| 77 | + private Long fcsjT; | ||
| 78 | + | ||
| 79 | + /** 计划终点时间(格式 HH:mm) */ | ||
| 80 | + private String zdsj; | ||
| 81 | + /** 计划终点时间戳*/ | ||
| 82 | + @Transient | ||
| 83 | + private Long zdsjT; | ||
| 84 | + | ||
| 85 | + /** 计划里程 */ | ||
| 86 | + private Double jhlc; | ||
| 87 | + | ||
| 88 | + /** 原始计划里程 (原计调的数据) */ | ||
| 89 | + private Double jhlcOrig; | ||
| 90 | + | ||
| 91 | + /** 班次历时 */ | ||
| 92 | + private Integer bcsj; | ||
| 93 | + | ||
| 94 | + /** | ||
| 95 | + * 班次类型 TODO:正常班次、出场、进场、加油、区间班次、放空班次、放大站班次、两点间空驶 | ||
| 96 | + */ | ||
| 97 | + private String bcType; | ||
| 98 | + | ||
| 99 | + /** 实际发车时间*/ | ||
| 100 | + private String fcsjActual; | ||
| 101 | + /** 实际发车时间戳*/ | ||
| 102 | + @Transient | ||
| 103 | + private Long fcsjActualTime; | ||
| 104 | + /**实际终点时间 */ | ||
| 105 | + private String zdsjActual; | ||
| 106 | + /** 实际终点时间戳*/ | ||
| 107 | + @Transient | ||
| 108 | + private Long zdsjActualTime; | ||
| 109 | + | ||
| 110 | + /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */ | ||
| 111 | + private int status; | ||
| 112 | + | ||
| 113 | + private String adjustExps; | ||
| 114 | + | ||
| 115 | + /** 是否是临加班次 */ | ||
| 116 | + private boolean sflj; | ||
| 117 | + | ||
| 118 | + /** 备注*/ | ||
| 119 | + private String remarks; | ||
| 120 | + | ||
| 121 | + /**待发时间(格式 HH:mm) */ | ||
| 122 | + private String dfsj; | ||
| 123 | + | ||
| 124 | + /**待发时间戳 */ | ||
| 125 | + @Transient | ||
| 126 | + private Long dfsjT; | ||
| 127 | + | ||
| 128 | + /** 指令下发状态 60: 已发送, 100: 设备确认收到, 200:驾驶员确认 0:失败 */ | ||
| 129 | + private Integer directiveState = -1; | ||
| 130 | + | ||
| 131 | + /** 子任务 */ | ||
| 132 | + @OneToMany(fetch = FetchType.LAZY, mappedBy = "schedule") | ||
| 133 | + private Set<ChildTaskPlan> cTasks = new HashSet<>(); | ||
| 134 | + | ||
| 135 | + /** 关联的公司名称 */ | ||
| 136 | + private String gsName; | ||
| 137 | + /** 关联的公司编码 */ | ||
| 138 | + private String gsBm; | ||
| 139 | + /** 关联的分公司名称 */ | ||
| 140 | + private String fgsName; | ||
| 141 | + /** 关联的分公司编码 */ | ||
| 142 | + private String fgsBm; | ||
| 143 | + | ||
| 144 | + /** 工时(分钟),包含停站时间 */ | ||
| 145 | + @Transient | ||
| 146 | + private Integer hours; | ||
| 147 | + | ||
| 148 | + @Override | ||
| 149 | + public int hashCode() { | ||
| 150 | + return (this.id + this.scheduleDateStr + this.xlBm + this.fcsj).hashCode(); | ||
| 151 | + } | ||
| 152 | + | ||
| 153 | + @Override | ||
| 154 | + public boolean equals(Object obj) { | ||
| 155 | + return this.id.equals(((ScheduleRealInfo)obj).getId()); | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + public Long getId() { | ||
| 159 | + return id; | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + public void setId(Long id) { | ||
| 163 | + this.id = id; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + public Long getSpId() { | ||
| 167 | + return spId; | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + public void setSpId(Long spId) { | ||
| 171 | + this.spId = spId; | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + public Date getScheduleDate() { | ||
| 175 | + return scheduleDate; | ||
| 176 | + } | ||
| 177 | + | ||
| 178 | + public void setScheduleDate(Date scheduleDate) { | ||
| 179 | + this.scheduleDate = scheduleDate; | ||
| 180 | + } | ||
| 181 | + | ||
| 182 | + public String getScheduleDateStr() { | ||
| 183 | + return scheduleDateStr; | ||
| 184 | + } | ||
| 185 | + | ||
| 186 | + public void setScheduleDateStr(String scheduleDateStr) { | ||
| 187 | + this.scheduleDateStr = scheduleDateStr; | ||
| 188 | + } | ||
| 189 | + | ||
| 190 | + public String getRealExecDate() { | ||
| 191 | + return realExecDate; | ||
| 192 | + } | ||
| 193 | + | ||
| 194 | + public void setRealExecDate(String realExecDate) { | ||
| 195 | + this.realExecDate = realExecDate; | ||
| 196 | + } | ||
| 197 | + | ||
| 198 | + public String getXlName() { | ||
| 199 | + return xlName; | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + public void setXlName(String xlName) { | ||
| 203 | + this.xlName = xlName; | ||
| 204 | + } | ||
| 205 | + | ||
| 206 | + public String getXlBm() { | ||
| 207 | + return xlBm; | ||
| 208 | + } | ||
| 209 | + | ||
| 210 | + public void setXlBm(String xlBm) { | ||
| 211 | + this.xlBm = xlBm; | ||
| 212 | + } | ||
| 213 | + | ||
| 214 | + public String getLpName() { | ||
| 215 | + return lpName; | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + public void setLpName(String lpName) { | ||
| 219 | + this.lpName = lpName; | ||
| 220 | + } | ||
| 221 | + | ||
| 222 | + public String getClZbh() { | ||
| 223 | + return clZbh; | ||
| 224 | + } | ||
| 225 | + | ||
| 226 | + public void setClZbh(String clZbh) { | ||
| 227 | + this.clZbh = clZbh; | ||
| 228 | + } | ||
| 229 | + | ||
| 230 | + public String getjGh() { | ||
| 231 | + return jGh; | ||
| 232 | + } | ||
| 233 | + | ||
| 234 | + public void setjGh(String jGh) { | ||
| 235 | + this.jGh = jGh; | ||
| 236 | + } | ||
| 237 | + | ||
| 238 | + public String getjName() { | ||
| 239 | + return jName; | ||
| 240 | + } | ||
| 241 | + | ||
| 242 | + public void setjName(String jName) { | ||
| 243 | + this.jName = jName; | ||
| 244 | + } | ||
| 245 | + | ||
| 246 | + public String getsGh() { | ||
| 247 | + return sGh; | ||
| 248 | + } | ||
| 249 | + | ||
| 250 | + public void setsGh(String sGh) { | ||
| 251 | + this.sGh = sGh; | ||
| 252 | + } | ||
| 253 | + | ||
| 254 | + public String getsName() { | ||
| 255 | + return sName; | ||
| 256 | + } | ||
| 257 | + | ||
| 258 | + public void setsName(String sName) { | ||
| 259 | + this.sName = sName; | ||
| 260 | + } | ||
| 261 | + | ||
| 262 | + public String getXlDir() { | ||
| 263 | + return xlDir; | ||
| 264 | + } | ||
| 265 | + | ||
| 266 | + public void setXlDir(String xlDir) { | ||
| 267 | + this.xlDir = xlDir; | ||
| 268 | + } | ||
| 269 | + | ||
| 270 | + public String getQdzCode() { | ||
| 271 | + return qdzCode; | ||
| 272 | + } | ||
| 273 | + | ||
| 274 | + public void setQdzCode(String qdzCode) { | ||
| 275 | + this.qdzCode = qdzCode; | ||
| 276 | + } | ||
| 277 | + | ||
| 278 | + public String getQdzName() { | ||
| 279 | + return qdzName; | ||
| 280 | + } | ||
| 281 | + | ||
| 282 | + public void setQdzName(String qdzName) { | ||
| 283 | + this.qdzName = qdzName; | ||
| 284 | + } | ||
| 285 | + | ||
| 286 | + public String getZdzCode() { | ||
| 287 | + return zdzCode; | ||
| 288 | + } | ||
| 289 | + | ||
| 290 | + public void setZdzCode(String zdzCode) { | ||
| 291 | + this.zdzCode = zdzCode; | ||
| 292 | + } | ||
| 293 | + | ||
| 294 | + public String getZdzName() { | ||
| 295 | + return zdzName; | ||
| 296 | + } | ||
| 297 | + | ||
| 298 | + public void setZdzName(String zdzName) { | ||
| 299 | + this.zdzName = zdzName; | ||
| 300 | + } | ||
| 301 | + | ||
| 302 | + public String getFcsj() { | ||
| 303 | + return fcsj; | ||
| 304 | + } | ||
| 305 | + | ||
| 306 | + public void setFcsj(String fcsj) { | ||
| 307 | + this.fcsj = fcsj; | ||
| 308 | + } | ||
| 309 | + | ||
| 310 | + public Long getFcsjT() { | ||
| 311 | + return fcsjT; | ||
| 312 | + } | ||
| 313 | + | ||
| 314 | + public void setFcsjT(Long fcsjT) { | ||
| 315 | + this.fcsjT = fcsjT; | ||
| 316 | + } | ||
| 317 | + | ||
| 318 | + public String getZdsj() { | ||
| 319 | + return zdsj; | ||
| 320 | + } | ||
| 321 | + | ||
| 322 | + public void setZdsj(String zdsj) { | ||
| 323 | + this.zdsj = zdsj; | ||
| 324 | + } | ||
| 325 | + | ||
| 326 | + public Long getZdsjT() { | ||
| 327 | + return zdsjT; | ||
| 328 | + } | ||
| 329 | + | ||
| 330 | + public void setZdsjT(Long zdsjT) { | ||
| 331 | + this.zdsjT = zdsjT; | ||
| 332 | + } | ||
| 333 | + | ||
| 334 | + public Double getJhlc() { | ||
| 335 | + return jhlc; | ||
| 336 | + } | ||
| 337 | + | ||
| 338 | + public void setJhlc(Double jhlc) { | ||
| 339 | + this.jhlc = jhlc; | ||
| 340 | + } | ||
| 341 | + | ||
| 342 | + public Integer getBcsj() { | ||
| 343 | + return bcsj; | ||
| 344 | + } | ||
| 345 | + | ||
| 346 | + public void setBcsj(Integer bcsj) { | ||
| 347 | + this.bcsj = bcsj; | ||
| 348 | + } | ||
| 349 | + | ||
| 350 | + public String getBcType() { | ||
| 351 | + return bcType; | ||
| 352 | + } | ||
| 353 | + | ||
| 354 | + public void setBcType(String bcType) { | ||
| 355 | + this.bcType = bcType; | ||
| 356 | + } | ||
| 357 | + | ||
| 358 | + public String getFcsjActual() { | ||
| 359 | + return fcsjActual; | ||
| 360 | + } | ||
| 361 | + | ||
| 362 | + public void setFcsjActual(String fcsjActual) { | ||
| 363 | + this.fcsjActual = fcsjActual; | ||
| 364 | + } | ||
| 365 | + | ||
| 366 | + public Long getFcsjActualTime() { | ||
| 367 | + return fcsjActualTime; | ||
| 368 | + } | ||
| 369 | + | ||
| 370 | + public void setFcsjActualTime(Long fcsjActualTime) { | ||
| 371 | + this.fcsjActualTime = fcsjActualTime; | ||
| 372 | + } | ||
| 373 | + | ||
| 374 | + public String getZdsjActual() { | ||
| 375 | + return zdsjActual; | ||
| 376 | + } | ||
| 377 | + | ||
| 378 | + public void setZdsjActual(String zdsjActual) { | ||
| 379 | + this.zdsjActual = zdsjActual; | ||
| 380 | + } | ||
| 381 | + | ||
| 382 | + public Long getZdsjActualTime() { | ||
| 383 | + return zdsjActualTime; | ||
| 384 | + } | ||
| 385 | + | ||
| 386 | + public void setZdsjActualTime(Long zdsjActualTime) { | ||
| 387 | + this.zdsjActualTime = zdsjActualTime; | ||
| 388 | + } | ||
| 389 | + | ||
| 390 | + public int getStatus() { | ||
| 391 | + return status; | ||
| 392 | + } | ||
| 393 | + | ||
| 394 | + public void setStatus(int status) { | ||
| 395 | + this.status = status; | ||
| 396 | + } | ||
| 397 | + | ||
| 398 | + public String getAdjustExps() { | ||
| 399 | + return adjustExps; | ||
| 400 | + } | ||
| 401 | + | ||
| 402 | + public void setAdjustExps(String adjustExps) { | ||
| 403 | + this.adjustExps = adjustExps; | ||
| 404 | + } | ||
| 405 | + | ||
| 406 | + public boolean isSflj() { | ||
| 407 | + return sflj; | ||
| 408 | + } | ||
| 409 | + | ||
| 410 | + public void setSflj(boolean sflj) { | ||
| 411 | + this.sflj = sflj; | ||
| 412 | + } | ||
| 413 | + | ||
| 414 | + public String getRemarks() { | ||
| 415 | + return remarks; | ||
| 416 | + } | ||
| 417 | + | ||
| 418 | + public void setRemarks(String remarks) { | ||
| 419 | + this.remarks = remarks; | ||
| 420 | + } | ||
| 421 | + | ||
| 422 | + public String getDfsj() { | ||
| 423 | + return dfsj; | ||
| 424 | + } | ||
| 425 | + | ||
| 426 | + public void setDfsj(String dfsj) { | ||
| 427 | + this.dfsj = dfsj; | ||
| 428 | + } | ||
| 429 | + | ||
| 430 | + public Long getDfsjT() { | ||
| 431 | + return dfsjT; | ||
| 432 | + } | ||
| 433 | + | ||
| 434 | + public void setDfsjT(Long dfsjT) { | ||
| 435 | + this.dfsjT = dfsjT; | ||
| 436 | + } | ||
| 437 | + | ||
| 438 | + public Integer getDirectiveState() { | ||
| 439 | + return directiveState; | ||
| 440 | + } | ||
| 441 | + | ||
| 442 | + public void setDirectiveState(Integer directiveState) { | ||
| 443 | + this.directiveState = directiveState; | ||
| 444 | + } | ||
| 445 | + | ||
| 446 | + public Set<ChildTaskPlan> getcTasks() { | ||
| 447 | + return cTasks; | ||
| 448 | + } | ||
| 449 | + | ||
| 450 | + public void setcTasks(Set<ChildTaskPlan> cTasks) { | ||
| 451 | + this.cTasks = cTasks; | ||
| 452 | + } | ||
| 453 | + | ||
| 454 | + public String getGsName() { | ||
| 455 | + return gsName; | ||
| 456 | + } | ||
| 457 | + | ||
| 458 | + public void setGsName(String gsName) { | ||
| 459 | + this.gsName = gsName; | ||
| 460 | + } | ||
| 461 | + | ||
| 462 | + public String getGsBm() { | ||
| 463 | + return gsBm; | ||
| 464 | + } | ||
| 465 | + | ||
| 466 | + public void setGsBm(String gsBm) { | ||
| 467 | + this.gsBm = gsBm; | ||
| 468 | + } | ||
| 469 | + | ||
| 470 | + public String getFgsName() { | ||
| 471 | + return fgsName; | ||
| 472 | + } | ||
| 473 | + | ||
| 474 | + public void setFgsName(String fgsName) { | ||
| 475 | + this.fgsName = fgsName; | ||
| 476 | + } | ||
| 477 | + | ||
| 478 | + public String getFgsBm() { | ||
| 479 | + return fgsBm; | ||
| 480 | + } | ||
| 481 | + | ||
| 482 | + public void setFgsBm(String fgsBm) { | ||
| 483 | + this.fgsBm = fgsBm; | ||
| 484 | + } | ||
| 485 | + | ||
| 486 | + public Double getJhlcOrig() { | ||
| 487 | + return jhlcOrig; | ||
| 488 | + } | ||
| 489 | + | ||
| 490 | + public void setJhlcOrig(Double jhlcOrig) { | ||
| 491 | + this.jhlcOrig = jhlcOrig; | ||
| 492 | + } | ||
| 493 | + | ||
| 494 | + | ||
| 495 | + @Transient | ||
| 496 | + private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm"); | ||
| 497 | + @Transient | ||
| 498 | + private static DateTimeFormatter fmtyyyyMMddHHmm = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm"); | ||
| 499 | + | ||
| 500 | + /** | ||
| 501 | + * | ||
| 502 | + * @Title: setFcsjAll | ||
| 503 | + * @Description: TODO(设置计划发车时间) | ||
| 504 | + * @throws | ||
| 505 | + */ | ||
| 506 | + public void setFcsjAll(Long fcsjT){ | ||
| 507 | + this.fcsjT = fcsjT; | ||
| 508 | + this.fcsj = fmtHHmm.print(fcsjT); | ||
| 509 | + } | ||
| 510 | + | ||
| 511 | + public void setDfsjAll(Long dfsjT) { | ||
| 512 | + this.dfsjT = dfsjT; | ||
| 513 | + this.dfsj = fmtHHmm.print(this.dfsjT); | ||
| 514 | + } | ||
| 515 | + | ||
| 516 | + /** | ||
| 517 | + * | ||
| 518 | + * @Title: setFcsjActualAll | ||
| 519 | + * @Description: TODO(设置实际发车时间 时间戳) | ||
| 520 | + * @throws | ||
| 521 | + */ | ||
| 522 | + public void setFcsjActualAll(Long t){ | ||
| 523 | + this.fcsjActualTime = t; | ||
| 524 | + this.fcsjActual = fmtHHmm.print(t); | ||
| 525 | + } | ||
| 526 | + | ||
| 527 | + /** | ||
| 528 | + * | ||
| 529 | + * @Title: setFcsjActualAll | ||
| 530 | + * @Description: TODO(设置实际终点时间) | ||
| 531 | + * @throws | ||
| 532 | + */ | ||
| 533 | + public void setZdsjActualAll(Long t){ | ||
| 534 | + this.zdsjActualTime = t; | ||
| 535 | + this.zdsjActual = fmtHHmm.print(t); | ||
| 536 | + } | ||
| 537 | + | ||
| 538 | + public void setDfsjAll(String dfsj) { | ||
| 539 | + this.dfsjT = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + dfsj); | ||
| 540 | + this.dfsj = dfsj; | ||
| 541 | + } | ||
| 542 | + | ||
| 543 | + /** | ||
| 544 | + * | ||
| 545 | + * @Title: setFcsjActualAll | ||
| 546 | + * @Description: TODO(设置实际发车时间 字符串) | ||
| 547 | + * @throws | ||
| 548 | + */ | ||
| 549 | + public void setFcsjActualAll(String fcsjActual){ | ||
| 550 | + this.fcsjActualTime = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + fcsjActual); | ||
| 551 | + this.fcsjActual = fcsjActual; | ||
| 552 | + } | ||
| 553 | + | ||
| 554 | + /** | ||
| 555 | + * | ||
| 556 | + * @Title: setFcsjActualAll | ||
| 557 | + * @Description: TODO(设置实际终点时间) | ||
| 558 | + * @throws | ||
| 559 | + */ | ||
| 560 | + public void setZdsjActualAll(String zdsjActual){ | ||
| 561 | + this.zdsjActualTime = fmtyyyyMMddHHmm.parseMillis(this.realExecDate + zdsjActual); | ||
| 562 | + this.zdsjActual = zdsjActual; | ||
| 563 | + } | ||
| 564 | + | ||
| 565 | + public void calcHoursJh() { | ||
| 566 | + if(this.status == -1) | ||
| 567 | + this.setHours(0); | ||
| 568 | + else | ||
| 569 | + this.setHours(this.getBcsj()); | ||
| 570 | + } | ||
| 571 | + | ||
| 572 | + public void calcHoursSJ() { | ||
| 573 | + try { | ||
| 574 | + if(StringUtils.isEmpty(this.fcsjActual)) | ||
| 575 | + this.setFcsjActualAll(this.dfsjT); | ||
| 576 | + if(StringUtils.isEmpty(this.zdsjActual)) | ||
| 577 | + this.setZdsjActualAll(this.zdsjT); | ||
| 578 | + | ||
| 579 | + /*if(this.status == -1) | ||
| 580 | + this.hours = 0; | ||
| 581 | + else*/ | ||
| 582 | + this.hours = Integer.parseInt(String.valueOf((this.zdsjActualTime - this.fcsjActualTime) / 1000 / 60)); | ||
| 583 | + }catch (Exception e){ | ||
| 584 | + System.out.println("aa"); | ||
| 585 | + } | ||
| 586 | + } | ||
| 587 | + | ||
| 588 | + public Integer getHours() { | ||
| 589 | + return hours; | ||
| 590 | + } | ||
| 591 | + | ||
| 592 | + public void setHours(Integer hours) { | ||
| 593 | + this.hours = hours; | ||
| 594 | + } | ||
| 595 | +} |
src/main/java/com/bsth/entity/result/CalcWaybill.java
0 → 100644
| 1 | +package com.bsth.entity.result; | ||
| 2 | + | ||
| 3 | +import java.util.Date; | ||
| 4 | + | ||
| 5 | +public class CalcWaybill { | ||
| 6 | + /* 主键*/ | ||
| 7 | + private Long id; | ||
| 8 | + /* 公司代码*/ | ||
| 9 | + private String gsdm; | ||
| 10 | + /* 公司名称*/ | ||
| 11 | + private String gsname; | ||
| 12 | + /* 分公司代码*/ | ||
| 13 | + private String fgsdm; | ||
| 14 | + /* 分公司名称*/ | ||
| 15 | + private String fgsname; | ||
| 16 | + /* 日期*/ | ||
| 17 | + private Date rq; | ||
| 18 | + /* 日期字符串*/ | ||
| 19 | + private String rqStr; | ||
| 20 | + /* 线路编码*/ | ||
| 21 | + private String xl; | ||
| 22 | + /* 线路名称*/ | ||
| 23 | + private String xlName; | ||
| 24 | + /* 车辆自编号*/ | ||
| 25 | + private String cl; | ||
| 26 | + /* 路牌名字*/ | ||
| 27 | + private String lp; | ||
| 28 | + /* 驾驶员工号*/ | ||
| 29 | + private String jGh; | ||
| 30 | + /* 驾驶员名字*/ | ||
| 31 | + private String jName; | ||
| 32 | + /* 售票员工号*/ | ||
| 33 | + private String sGh; | ||
| 34 | + /* 售票员名字*/ | ||
| 35 | + private String sName; | ||
| 36 | + /* 计划营运班次*/ | ||
| 37 | + private int jhyybc; | ||
| 38 | + /* 计划早高峰营运班次*/ | ||
| 39 | + private int jhyybczgf; | ||
| 40 | + /* 计划晚高峰营运班次*/ | ||
| 41 | + private int jhyybcwgf; | ||
| 42 | + /* 计划空驶班次*/ | ||
| 43 | + private int jhksbc; | ||
| 44 | + /* 计划进出场班次*/ | ||
| 45 | + private int jhjccbc; | ||
| 46 | + /* 计划营运里程*/ | ||
| 47 | + private Double jhyylc; | ||
| 48 | + /* 计划空驶里程*/ | ||
| 49 | + private Double jhkslc; | ||
| 50 | + /* 计划进出场里程*/ | ||
| 51 | + private Double jhjcclc; | ||
| 52 | + /* 实际营运班次*/ | ||
| 53 | + private int sjyybc; | ||
| 54 | + /* 实际早高峰营运班次*/ | ||
| 55 | + private int sjyybczgf; | ||
| 56 | + /* 实际晚高峰营运班次*/ | ||
| 57 | + private int sjyybcwgf; | ||
| 58 | + /* 实际空驶班次*/ | ||
| 59 | + private int sjksbc; | ||
| 60 | + /* 实际进出场班次*/ | ||
| 61 | + private int sjjccbc; | ||
| 62 | + /* 实际营运里程*/ | ||
| 63 | + private Double sjyylc; | ||
| 64 | + /* 实际空驶里程*/ | ||
| 65 | + private Double sjkslc; | ||
| 66 | + /* 实际进出场里程*/ | ||
| 67 | + private Double sjjcclc; | ||
| 68 | + /* 临加班次*/ | ||
| 69 | + private int ljbc; | ||
| 70 | + /* 临加早高峰班次*/ | ||
| 71 | + private int ljbczgf; | ||
| 72 | + /* 临加晚高峰班次*/ | ||
| 73 | + private int ljbcwgf; | ||
| 74 | + /* 临加营运里程*/ | ||
| 75 | + private Double ljyylc; | ||
| 76 | + /* 临加空驶里程*/ | ||
| 77 | + private Double ljkslc; | ||
| 78 | + /* 临加进出场里程*/ | ||
| 79 | + private Double ljjcclc; | ||
| 80 | + /* 烂班班次*/ | ||
| 81 | + private int lbbc; | ||
| 82 | + /* 烂班里程*/ | ||
| 83 | + private Double lblc; | ||
| 84 | + /* 路阻*/ | ||
| 85 | + private Double lblcLz; | ||
| 86 | + /* 吊慢*/ | ||
| 87 | + private Double lblcDm; | ||
| 88 | + /* 故障*/ | ||
| 89 | + private Double lblcGz; | ||
| 90 | + /* 纠纷*/ | ||
| 91 | + private Double lblcJf; | ||
| 92 | + /* 肇事*/ | ||
| 93 | + private Double lblcZs; | ||
| 94 | + /* 缺人*/ | ||
| 95 | + private Double lblcQr; | ||
| 96 | + /* 缺车*/ | ||
| 97 | + private Double lblcQc; | ||
| 98 | + /* 客稀*/ | ||
| 99 | + private Double lblcKx; | ||
| 100 | + /* 气候*/ | ||
| 101 | + private Double lblcQh; | ||
| 102 | + /* 援外*/ | ||
| 103 | + private Double lblcYw; | ||
| 104 | + /* 其他*/ | ||
| 105 | + private Double lblcQt; | ||
| 106 | + /* 放站班次*/ | ||
| 107 | + private int fzbc; | ||
| 108 | + /* 放站早高峰班次*/ | ||
| 109 | + private int fzbczgf; | ||
| 110 | + /* 放站晚高峰班次*/ | ||
| 111 | + private int fgbcwgf; | ||
| 112 | + /* 掉头班次*/ | ||
| 113 | + private int dtbc; | ||
| 114 | + /* 掉头早高峰班次*/ | ||
| 115 | + private int dtbczgf; | ||
| 116 | + /* 掉头晚高峰班次*/ | ||
| 117 | + private int dtbcwgf; | ||
| 118 | + /* 计划内营运公里*/ | ||
| 119 | + private Double jhnyygl; | ||
| 120 | + /* 计划外营运公里*/ | ||
| 121 | + private Double jhwyygl; | ||
| 122 | + /* 计划内进出场空驶*/ | ||
| 123 | + private Double jhnjcc; | ||
| 124 | + /* 计划外进出场空驶*/ | ||
| 125 | + private Double jhwjcc; | ||
| 126 | + /* 故障进出场*/ | ||
| 127 | + private Double gzjcc; | ||
| 128 | + /* 肇事进出场*/ | ||
| 129 | + private Double zsjcc; | ||
| 130 | + /* 纠纷进出场*/ | ||
| 131 | + private Double jfjcc; | ||
| 132 | + /* 其他进出场*/ | ||
| 133 | + private Double qtjcc; | ||
| 134 | + /* 实际空放空驶*/ | ||
| 135 | + private Double kfks; | ||
| 136 | + /* 创建时间*/ | ||
| 137 | + private Date createTime; | ||
| 138 | + /* 修改时间*/ | ||
| 139 | + private Date updateTime; | ||
| 140 | + public Long getId() { | ||
| 141 | + return id; | ||
| 142 | + } | ||
| 143 | + public void setId(Long id) { | ||
| 144 | + this.id = id; | ||
| 145 | + } | ||
| 146 | + public String getGsdm() { | ||
| 147 | + return gsdm; | ||
| 148 | + } | ||
| 149 | + public void setGsdm(String gsdm) { | ||
| 150 | + this.gsdm = gsdm; | ||
| 151 | + } | ||
| 152 | + public String getGsname() { | ||
| 153 | + return gsname; | ||
| 154 | + } | ||
| 155 | + public void setGsname(String gsname) { | ||
| 156 | + this.gsname = gsname; | ||
| 157 | + } | ||
| 158 | + public String getFgsdm() { | ||
| 159 | + return fgsdm; | ||
| 160 | + } | ||
| 161 | + public void setFgsdm(String fgsdm) { | ||
| 162 | + this.fgsdm = fgsdm; | ||
| 163 | + } | ||
| 164 | + public String getFgsname() { | ||
| 165 | + return fgsname; | ||
| 166 | + } | ||
| 167 | + public void setFgsname(String fgsname) { | ||
| 168 | + this.fgsname = fgsname; | ||
| 169 | + } | ||
| 170 | + public Date getRq() { | ||
| 171 | + return rq; | ||
| 172 | + } | ||
| 173 | + public void setRq(Date rq) { | ||
| 174 | + this.rq = rq; | ||
| 175 | + } | ||
| 176 | + public String getRqStr() { | ||
| 177 | + return rqStr; | ||
| 178 | + } | ||
| 179 | + public void setRqStr(String rqStr) { | ||
| 180 | + this.rqStr = rqStr; | ||
| 181 | + } | ||
| 182 | + public String getXl() { | ||
| 183 | + return xl; | ||
| 184 | + } | ||
| 185 | + public void setXl(String xl) { | ||
| 186 | + this.xl = xl; | ||
| 187 | + } | ||
| 188 | + public String getXlName() { | ||
| 189 | + return xlName; | ||
| 190 | + } | ||
| 191 | + public void setXlName(String xlName) { | ||
| 192 | + this.xlName = xlName; | ||
| 193 | + } | ||
| 194 | + public String getCl() { | ||
| 195 | + return cl; | ||
| 196 | + } | ||
| 197 | + public void setCl(String cl) { | ||
| 198 | + this.cl = cl; | ||
| 199 | + } | ||
| 200 | + public String getLp() { | ||
| 201 | + return lp; | ||
| 202 | + } | ||
| 203 | + public void setLp(String lp) { | ||
| 204 | + this.lp = lp; | ||
| 205 | + } | ||
| 206 | + public String getjGh() { | ||
| 207 | + return jGh; | ||
| 208 | + } | ||
| 209 | + public void setjGh(String jGh) { | ||
| 210 | + this.jGh = jGh; | ||
| 211 | + } | ||
| 212 | + public String getjName() { | ||
| 213 | + return jName; | ||
| 214 | + } | ||
| 215 | + public void setjName(String jName) { | ||
| 216 | + this.jName = jName; | ||
| 217 | + } | ||
| 218 | + public String getsGh() { | ||
| 219 | + return sGh; | ||
| 220 | + } | ||
| 221 | + public void setsGh(String sGh) { | ||
| 222 | + this.sGh = sGh; | ||
| 223 | + } | ||
| 224 | + public String getsName() { | ||
| 225 | + return sName; | ||
| 226 | + } | ||
| 227 | + public void setsName(String sName) { | ||
| 228 | + this.sName = sName; | ||
| 229 | + } | ||
| 230 | + public int getJhyybc() { | ||
| 231 | + return jhyybc; | ||
| 232 | + } | ||
| 233 | + public void setJhyybc(int jhyybc) { | ||
| 234 | + this.jhyybc = jhyybc; | ||
| 235 | + } | ||
| 236 | + public int getJhyybczgf() { | ||
| 237 | + return jhyybczgf; | ||
| 238 | + } | ||
| 239 | + public void setJhyybczgf(int jhyybczgf) { | ||
| 240 | + this.jhyybczgf = jhyybczgf; | ||
| 241 | + } | ||
| 242 | + public int getJhyybcwgf() { | ||
| 243 | + return jhyybcwgf; | ||
| 244 | + } | ||
| 245 | + public void setJhyybcwgf(int jhyybcwgf) { | ||
| 246 | + this.jhyybcwgf = jhyybcwgf; | ||
| 247 | + } | ||
| 248 | + public int getJhksbc() { | ||
| 249 | + return jhksbc; | ||
| 250 | + } | ||
| 251 | + public void setJhksbc(int jhksbc) { | ||
| 252 | + this.jhksbc = jhksbc; | ||
| 253 | + } | ||
| 254 | + public int getJhjccbc() { | ||
| 255 | + return jhjccbc; | ||
| 256 | + } | ||
| 257 | + public void setJhjccbc(int jhjccbc) { | ||
| 258 | + this.jhjccbc = jhjccbc; | ||
| 259 | + } | ||
| 260 | + public Double getJhyylc() { | ||
| 261 | + return jhyylc; | ||
| 262 | + } | ||
| 263 | + public void setJhyylc(Double jhyylc) { | ||
| 264 | + this.jhyylc = jhyylc; | ||
| 265 | + } | ||
| 266 | + public Double getJhkslc() { | ||
| 267 | + return jhkslc; | ||
| 268 | + } | ||
| 269 | + public void setJhkslc(Double jhkslc) { | ||
| 270 | + this.jhkslc = jhkslc; | ||
| 271 | + } | ||
| 272 | + public Double getJhjcclc() { | ||
| 273 | + return jhjcclc; | ||
| 274 | + } | ||
| 275 | + public void setJhjcclc(Double jhjcclc) { | ||
| 276 | + this.jhjcclc = jhjcclc; | ||
| 277 | + } | ||
| 278 | + public int getSjyybc() { | ||
| 279 | + return sjyybc; | ||
| 280 | + } | ||
| 281 | + public void setSjyybc(int sjyybc) { | ||
| 282 | + this.sjyybc = sjyybc; | ||
| 283 | + } | ||
| 284 | + public int getSjyybczgf() { | ||
| 285 | + return sjyybczgf; | ||
| 286 | + } | ||
| 287 | + public void setSjyybczgf(int sjyybczgf) { | ||
| 288 | + this.sjyybczgf = sjyybczgf; | ||
| 289 | + } | ||
| 290 | + public int getSjyybcwgf() { | ||
| 291 | + return sjyybcwgf; | ||
| 292 | + } | ||
| 293 | + public void setSjyybcwgf(int sjyybcwgf) { | ||
| 294 | + this.sjyybcwgf = sjyybcwgf; | ||
| 295 | + } | ||
| 296 | + public int getSjksbc() { | ||
| 297 | + return sjksbc; | ||
| 298 | + } | ||
| 299 | + public void setSjksbc(int sjksbc) { | ||
| 300 | + this.sjksbc = sjksbc; | ||
| 301 | + } | ||
| 302 | + public int getSjjccbc() { | ||
| 303 | + return sjjccbc; | ||
| 304 | + } | ||
| 305 | + public void setSjjccbc(int sjjccbc) { | ||
| 306 | + this.sjjccbc = sjjccbc; | ||
| 307 | + } | ||
| 308 | + public Double getSjyylc() { | ||
| 309 | + return sjyylc; | ||
| 310 | + } | ||
| 311 | + public void setSjyylc(Double sjyylc) { | ||
| 312 | + this.sjyylc = sjyylc; | ||
| 313 | + } | ||
| 314 | + public Double getSjkslc() { | ||
| 315 | + return sjkslc; | ||
| 316 | + } | ||
| 317 | + public void setSjkslc(Double sjkslc) { | ||
| 318 | + this.sjkslc = sjkslc; | ||
| 319 | + } | ||
| 320 | + public Double getSjjcclc() { | ||
| 321 | + return sjjcclc; | ||
| 322 | + } | ||
| 323 | + public void setSjjcclc(Double sjjcclc) { | ||
| 324 | + this.sjjcclc = sjjcclc; | ||
| 325 | + } | ||
| 326 | + public int getLjbc() { | ||
| 327 | + return ljbc; | ||
| 328 | + } | ||
| 329 | + public void setLjbc(int ljbc) { | ||
| 330 | + this.ljbc = ljbc; | ||
| 331 | + } | ||
| 332 | + public int getLjbczgf() { | ||
| 333 | + return ljbczgf; | ||
| 334 | + } | ||
| 335 | + public void setLjbczgf(int ljbczgf) { | ||
| 336 | + this.ljbczgf = ljbczgf; | ||
| 337 | + } | ||
| 338 | + public int getLjbcwgf() { | ||
| 339 | + return ljbcwgf; | ||
| 340 | + } | ||
| 341 | + public void setLjbcwgf(int ljbcwgf) { | ||
| 342 | + this.ljbcwgf = ljbcwgf; | ||
| 343 | + } | ||
| 344 | + public Double getLjyylc() { | ||
| 345 | + return ljyylc; | ||
| 346 | + } | ||
| 347 | + public void setLjyylc(Double ljyylc) { | ||
| 348 | + this.ljyylc = ljyylc; | ||
| 349 | + } | ||
| 350 | + public Double getLjkslc() { | ||
| 351 | + return ljkslc; | ||
| 352 | + } | ||
| 353 | + public void setLjkslc(Double ljkslc) { | ||
| 354 | + this.ljkslc = ljkslc; | ||
| 355 | + } | ||
| 356 | + public Double getLjjcclc() { | ||
| 357 | + return ljjcclc; | ||
| 358 | + } | ||
| 359 | + public void setLjjcclc(Double ljjcclc) { | ||
| 360 | + this.ljjcclc = ljjcclc; | ||
| 361 | + } | ||
| 362 | + public int getLbbc() { | ||
| 363 | + return lbbc; | ||
| 364 | + } | ||
| 365 | + public void setLbbc(int lbbc) { | ||
| 366 | + this.lbbc = lbbc; | ||
| 367 | + } | ||
| 368 | + public Double getLblc() { | ||
| 369 | + return lblc; | ||
| 370 | + } | ||
| 371 | + public void setLblc(Double lblc) { | ||
| 372 | + this.lblc = lblc; | ||
| 373 | + } | ||
| 374 | + public Double getLblcLz() { | ||
| 375 | + return lblcLz; | ||
| 376 | + } | ||
| 377 | + public void setLblcLz(Double lblcLz) { | ||
| 378 | + this.lblcLz = lblcLz; | ||
| 379 | + } | ||
| 380 | + public Double getLblcDm() { | ||
| 381 | + return lblcDm; | ||
| 382 | + } | ||
| 383 | + public void setLblcDm(Double lblcDm) { | ||
| 384 | + this.lblcDm = lblcDm; | ||
| 385 | + } | ||
| 386 | + public Double getLblcGz() { | ||
| 387 | + return lblcGz; | ||
| 388 | + } | ||
| 389 | + public void setLblcGz(Double lblcGz) { | ||
| 390 | + this.lblcGz = lblcGz; | ||
| 391 | + } | ||
| 392 | + public Double getLblcJf() { | ||
| 393 | + return lblcJf; | ||
| 394 | + } | ||
| 395 | + public void setLblcJf(Double lblcJf) { | ||
| 396 | + this.lblcJf = lblcJf; | ||
| 397 | + } | ||
| 398 | + public Double getLblcZs() { | ||
| 399 | + return lblcZs; | ||
| 400 | + } | ||
| 401 | + public void setLblcZs(Double lblcZs) { | ||
| 402 | + this.lblcZs = lblcZs; | ||
| 403 | + } | ||
| 404 | + public Double getLblcQr() { | ||
| 405 | + return lblcQr; | ||
| 406 | + } | ||
| 407 | + public void setLblcQr(Double lblcQr) { | ||
| 408 | + this.lblcQr = lblcQr; | ||
| 409 | + } | ||
| 410 | + public Double getLblcQc() { | ||
| 411 | + return lblcQc; | ||
| 412 | + } | ||
| 413 | + public void setLblcQc(Double lblcQc) { | ||
| 414 | + this.lblcQc = lblcQc; | ||
| 415 | + } | ||
| 416 | + public Double getLblcKx() { | ||
| 417 | + return lblcKx; | ||
| 418 | + } | ||
| 419 | + public void setLblcKx(Double lblcKx) { | ||
| 420 | + this.lblcKx = lblcKx; | ||
| 421 | + } | ||
| 422 | + public Double getLblcQh() { | ||
| 423 | + return lblcQh; | ||
| 424 | + } | ||
| 425 | + public void setLblcQh(Double lblcQh) { | ||
| 426 | + this.lblcQh = lblcQh; | ||
| 427 | + } | ||
| 428 | + public Double getLblcYw() { | ||
| 429 | + return lblcYw; | ||
| 430 | + } | ||
| 431 | + public void setLblcYw(Double lblcYw) { | ||
| 432 | + this.lblcYw = lblcYw; | ||
| 433 | + } | ||
| 434 | + public Double getLblcQt() { | ||
| 435 | + return lblcQt; | ||
| 436 | + } | ||
| 437 | + public void setLblcQt(Double lblcQt) { | ||
| 438 | + this.lblcQt = lblcQt; | ||
| 439 | + } | ||
| 440 | + public int getFzbc() { | ||
| 441 | + return fzbc; | ||
| 442 | + } | ||
| 443 | + public void setFzbc(int fzbc) { | ||
| 444 | + this.fzbc = fzbc; | ||
| 445 | + } | ||
| 446 | + public int getFzbczgf() { | ||
| 447 | + return fzbczgf; | ||
| 448 | + } | ||
| 449 | + public void setFzbczgf(int fzbczgf) { | ||
| 450 | + this.fzbczgf = fzbczgf; | ||
| 451 | + } | ||
| 452 | + public int getFgbcwgf() { | ||
| 453 | + return fgbcwgf; | ||
| 454 | + } | ||
| 455 | + public void setFgbcwgf(int fgbcwgf) { | ||
| 456 | + this.fgbcwgf = fgbcwgf; | ||
| 457 | + } | ||
| 458 | + public int getDtbc() { | ||
| 459 | + return dtbc; | ||
| 460 | + } | ||
| 461 | + public void setDtbc(int dtbc) { | ||
| 462 | + this.dtbc = dtbc; | ||
| 463 | + } | ||
| 464 | + public int getDtbczgf() { | ||
| 465 | + return dtbczgf; | ||
| 466 | + } | ||
| 467 | + public void setDtbczgf(int dtbczgf) { | ||
| 468 | + this.dtbczgf = dtbczgf; | ||
| 469 | + } | ||
| 470 | + public int getDtbcwgf() { | ||
| 471 | + return dtbcwgf; | ||
| 472 | + } | ||
| 473 | + public void setDtbcwgf(int dtbcwgf) { | ||
| 474 | + this.dtbcwgf = dtbcwgf; | ||
| 475 | + } | ||
| 476 | + public Double getJhnyygl() { | ||
| 477 | + return jhnyygl; | ||
| 478 | + } | ||
| 479 | + public void setJhnyygl(Double jhnyygl) { | ||
| 480 | + this.jhnyygl = jhnyygl; | ||
| 481 | + } | ||
| 482 | + public Double getJhwyygl() { | ||
| 483 | + return jhwyygl; | ||
| 484 | + } | ||
| 485 | + public void setJhwyygl(Double jhwyygl) { | ||
| 486 | + this.jhwyygl = jhwyygl; | ||
| 487 | + } | ||
| 488 | + public Double getJhnjcc() { | ||
| 489 | + return jhnjcc; | ||
| 490 | + } | ||
| 491 | + public void setJhnjcc(Double jhnjcc) { | ||
| 492 | + this.jhnjcc = jhnjcc; | ||
| 493 | + } | ||
| 494 | + public Double getJhwjcc() { | ||
| 495 | + return jhwjcc; | ||
| 496 | + } | ||
| 497 | + public void setJhwjcc(Double jhwjcc) { | ||
| 498 | + this.jhwjcc = jhwjcc; | ||
| 499 | + } | ||
| 500 | + public Double getGzjcc() { | ||
| 501 | + return gzjcc; | ||
| 502 | + } | ||
| 503 | + public void setGzjcc(Double gzjcc) { | ||
| 504 | + this.gzjcc = gzjcc; | ||
| 505 | + } | ||
| 506 | + public Double getZsjcc() { | ||
| 507 | + return zsjcc; | ||
| 508 | + } | ||
| 509 | + public void setZsjcc(Double zsjcc) { | ||
| 510 | + this.zsjcc = zsjcc; | ||
| 511 | + } | ||
| 512 | + public Double getJfjcc() { | ||
| 513 | + return jfjcc; | ||
| 514 | + } | ||
| 515 | + public void setJfjcc(Double jfjcc) { | ||
| 516 | + this.jfjcc = jfjcc; | ||
| 517 | + } | ||
| 518 | + public Double getQtjcc() { | ||
| 519 | + return qtjcc; | ||
| 520 | + } | ||
| 521 | + public void setQtjcc(Double qtjcc) { | ||
| 522 | + this.qtjcc = qtjcc; | ||
| 523 | + } | ||
| 524 | + public Double getKfks() { | ||
| 525 | + return kfks; | ||
| 526 | + } | ||
| 527 | + public void setKfks(Double kfks) { | ||
| 528 | + this.kfks = kfks; | ||
| 529 | + } | ||
| 530 | + public Date getCreateTime() { | ||
| 531 | + return createTime; | ||
| 532 | + } | ||
| 533 | + public void setCreateTime(Date createTime) { | ||
| 534 | + this.createTime = createTime; | ||
| 535 | + } | ||
| 536 | + public Date getUpdateTime() { | ||
| 537 | + return updateTime; | ||
| 538 | + } | ||
| 539 | + public void setUpdateTime(Date updateTime) { | ||
| 540 | + this.updateTime = updateTime; | ||
| 541 | + } | ||
| 542 | + | ||
| 543 | + | ||
| 544 | + | ||
| 545 | +} |
src/main/java/com/bsth/entity/result/WorkingHours_jsy.java
0 → 100644
| 1 | +package com.bsth.entity.result; | ||
| 2 | + | ||
| 3 | +import java.util.Date; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Created by panzhao on 2017/7/26. | ||
| 7 | + * table: | ||
| 8 | + * 驾驶员工时 | ||
| 9 | + */ | ||
| 10 | +public class WorkingHours_jsy { | ||
| 11 | + | ||
| 12 | + /** 公司编码 */ | ||
| 13 | + private String companyId; | ||
| 14 | + | ||
| 15 | + /** 分公司编码 */ | ||
| 16 | + private String subCompanyId; | ||
| 17 | + | ||
| 18 | + /** 线路编码 */ | ||
| 19 | + private String lineCode; | ||
| 20 | + | ||
| 21 | + /** 线路名称 */ | ||
| 22 | + private String lineName; | ||
| 23 | + | ||
| 24 | + /** 驾驶员工号 */ | ||
| 25 | + private String jsy; | ||
| 26 | + | ||
| 27 | + /** 驾驶员姓名 */ | ||
| 28 | + private String jsyName; | ||
| 29 | + | ||
| 30 | + /** 车辆自编号 */ | ||
| 31 | + private String nbbm; | ||
| 32 | + | ||
| 33 | + /** 路牌 */ | ||
| 34 | + private String lpName; | ||
| 35 | + | ||
| 36 | + /** 日期 (班次日期) */ | ||
| 37 | + private String rq; | ||
| 38 | + | ||
| 39 | + /** 计划工时(分钟) */ | ||
| 40 | + private Integer hoursJh; | ||
| 41 | + | ||
| 42 | + /** 实际工时(分钟) */ | ||
| 43 | + private Integer hoursSj; | ||
| 44 | + | ||
| 45 | + /** 来源 0: 从路单结算、 1:人工录入 */ | ||
| 46 | + private int source; | ||
| 47 | + | ||
| 48 | + /** 备注 */ | ||
| 49 | + private String remarks; | ||
| 50 | + | ||
| 51 | + private Date createDate; | ||
| 52 | + | ||
| 53 | + public String getCompanyId() { | ||
| 54 | + return companyId; | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + public void setCompanyId(String companyId) { | ||
| 58 | + this.companyId = companyId; | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + public String getSubCompanyId() { | ||
| 62 | + return subCompanyId; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + public void setSubCompanyId(String subCompanyId) { | ||
| 66 | + this.subCompanyId = subCompanyId; | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + public String getLineCode() { | ||
| 70 | + return lineCode; | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + public void setLineCode(String lineCode) { | ||
| 74 | + this.lineCode = lineCode; | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + public String getLineName() { | ||
| 78 | + return lineName; | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + public void setLineName(String lineName) { | ||
| 82 | + this.lineName = lineName; | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + public String getJsy() { | ||
| 86 | + return jsy; | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + public void setJsy(String jsy) { | ||
| 90 | + this.jsy = jsy; | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + public String getJsyName() { | ||
| 94 | + return jsyName; | ||
| 95 | + } | ||
| 96 | + | ||
| 97 | + public void setJsyName(String jsyName) { | ||
| 98 | + this.jsyName = jsyName; | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + public String getNbbm() { | ||
| 102 | + return nbbm; | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + public void setNbbm(String nbbm) { | ||
| 106 | + this.nbbm = nbbm; | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + public String getLpName() { | ||
| 110 | + return lpName; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + public void setLpName(String lpName) { | ||
| 114 | + this.lpName = lpName; | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + public String getRq() { | ||
| 118 | + return rq; | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + public void setRq(String rq) { | ||
| 122 | + this.rq = rq; | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + | ||
| 126 | + public int getSource() { | ||
| 127 | + return source; | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + public void setSource(int source) { | ||
| 131 | + this.source = source; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + public String getRemarks() { | ||
| 135 | + return remarks; | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + public void setRemarks(String remarks) { | ||
| 139 | + this.remarks = remarks; | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + public Date getCreateDate() { | ||
| 143 | + return createDate; | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + public void setCreateDate(Date createDate) { | ||
| 147 | + this.createDate = createDate; | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + public Integer getHoursJh() { | ||
| 151 | + return hoursJh; | ||
| 152 | + } | ||
| 153 | + | ||
| 154 | + public void setHoursJh(Integer hoursJh) { | ||
| 155 | + this.hoursJh = hoursJh; | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + public Integer getHoursSj() { | ||
| 159 | + return hoursSj; | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + public void setHoursSj(Integer hoursSj) { | ||
| 163 | + this.hoursSj = hoursSj; | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + public String keys() { | ||
| 167 | + return this.getLineCode() + "_" + this.getLpName() + "_" + this.getJsy() + "_" + this.getNbbm(); | ||
| 168 | + } | ||
| 169 | +} |
src/main/java/com/bsth/handler/UserCarCountHandler.java
0 → 100644
| 1 | +package com.bsth.handler; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.LineConfig; | ||
| 4 | +import com.bsth.entity.ScheduleRealInfo; | ||
| 5 | +import com.bsth.entity.result.WorkingHours_jsy; | ||
| 6 | +import com.bsth.service.LineConfigService; | ||
| 7 | +import com.bsth.service.ScheduleRealInfoService; | ||
| 8 | +import com.bsth.util.ConvertUtil; | ||
| 9 | +import com.google.common.collect.ArrayListMultimap; | ||
| 10 | +import com.mysql.fabric.xmlrpc.base.Data; | ||
| 11 | + | ||
| 12 | +import org.joda.time.DateTime; | ||
| 13 | +import org.slf4j.Logger; | ||
| 14 | +import org.slf4j.LoggerFactory; | ||
| 15 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 16 | +import org.springframework.jdbc.core.BatchPreparedStatementSetter; | ||
| 17 | +import org.springframework.jdbc.core.JdbcTemplate; | ||
| 18 | +import org.springframework.jdbc.datasource.DataSourceTransactionManager; | ||
| 19 | +import org.springframework.stereotype.Component; | ||
| 20 | +import org.springframework.transaction.TransactionDefinition; | ||
| 21 | +import org.springframework.transaction.TransactionStatus; | ||
| 22 | +import org.springframework.transaction.support.DefaultTransactionDefinition; | ||
| 23 | + | ||
| 24 | +import java.lang.reflect.Field; | ||
| 25 | +import java.sql.PreparedStatement; | ||
| 26 | +import java.sql.SQLException; | ||
| 27 | +import java.text.SimpleDateFormat; | ||
| 28 | +import java.util.*; | ||
| 29 | + | ||
| 30 | +/** | ||
| 31 | + * 人员车辆班次里程处理程序 | ||
| 32 | + */ | ||
| 33 | +@Component | ||
| 34 | +public class UserCarCountHandler { | ||
| 35 | + | ||
| 36 | + /** | ||
| 37 | + * 结算规则, 周几 ——> 结算前几天 (考虑间隔) | ||
| 38 | + */ | ||
| 39 | + private static Map<Integer, Integer> runRuleMap; | ||
| 40 | + | ||
| 41 | + /** | ||
| 42 | + * 间隔1天(留一天的时间给各个公司检查路单) | ||
| 43 | + */ | ||
| 44 | + private final static int DAY_SPACE = 1; | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 判定分班时间阈值 | ||
| 48 | + */ | ||
| 49 | + private final static long FB_THRESHOLD_TIME = 1000 * 60 * 60 * 2; | ||
| 50 | + | ||
| 51 | + @Autowired | ||
| 52 | + ScheduleRealInfoService scheduleRealInfoService; | ||
| 53 | + @Autowired | ||
| 54 | + LineConfigService lineConfigService; | ||
| 55 | + | ||
| 56 | + @Autowired | ||
| 57 | + JdbcTemplate jdbcTemplate; | ||
| 58 | + | ||
| 59 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
| 60 | + | ||
| 61 | + static { | ||
| 62 | + //0 是周天 | ||
| 63 | + runRuleMap = new HashMap<>(); | ||
| 64 | + runRuleMap.put(1, 0); | ||
| 65 | + runRuleMap.put(2, 3); | ||
| 66 | + runRuleMap.put(3, 1); | ||
| 67 | + runRuleMap.put(4, 1); | ||
| 68 | + runRuleMap.put(5, 1); | ||
| 69 | + runRuleMap.put(6, 1); | ||
| 70 | + runRuleMap.put(0, 0); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + /*public void calc() { | ||
| 74 | + DateTime dt = DateTime.now(); | ||
| 75 | + Calendar calendar = Calendar.getInstance(); | ||
| 76 | + calendar.setTime(dt.toDate()); | ||
| 77 | + //今天要结算多少天的工时 | ||
| 78 | + int count = runRuleMap.get(calendar.get(Calendar.DAY_OF_WEEK) - 1); | ||
| 79 | + | ||
| 80 | + dt = dt.minusDays(DAY_SPACE + count); | ||
| 81 | + String rq; | ||
| 82 | + for (int i = 0; i < count; i++) { | ||
| 83 | + rq = dt.toString("yyyy-MM-dd"); | ||
| 84 | + calc(rq); | ||
| 85 | + dt = dt.plusDays(1); | ||
| 86 | + } | ||
| 87 | + }*/ | ||
| 88 | + | ||
| 89 | + public void calcLast(){ | ||
| 90 | + //计算前一天班次里程 | ||
| 91 | + Date dNow = new Date(); | ||
| 92 | + Calendar calendar = Calendar.getInstance(); | ||
| 93 | + calendar.setTime(dNow); | ||
| 94 | + calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天 | ||
| 95 | + Date dBefore = calendar.getTime(); //得到前一天的时间 | ||
| 96 | + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式 | ||
| 97 | + SimpleDateFormat sdf2=new SimpleDateFormat(" HH:mm");//得到当前时间 | ||
| 98 | + String lastRq = sdf.format(dBefore); //格式化前一天 | ||
| 99 | + String time=sdf2.format(dNow); //格式化当前时间 | ||
| 100 | + String times[] =time.split(":"); | ||
| 101 | + time=times[0]+times[1]; | ||
| 102 | + int t=Integer.parseInt(times[0])*60+Integer.parseInt(times[1]); | ||
| 103 | + calc(lastRq,t); | ||
| 104 | + | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + private void calc(String rq,int t){ | ||
| 108 | + try { | ||
| 109 | + List<LineConfig> listLineConfig=lineConfigService.findAllList(); | ||
| 110 | + for (int i = 0; i < listLineConfig.size(); i++) { | ||
| 111 | + LineConfig lineConfig=listLineConfig.get(i); | ||
| 112 | + String lineCode=lineConfig.getLineCode(); | ||
| 113 | + String startOpt=lineConfig.getStartOpt(); | ||
| 114 | + String times[] =startOpt.split(":"); | ||
| 115 | + int time=Integer.parseInt(times[0])*60+Integer.parseInt(times[1])-30; | ||
| 116 | + //线路重新排版前30分钟 统计该线路前一天的 班次 里程 | ||
| 117 | + if(time>t){ | ||
| 118 | + //查询该线路前一天的排班 | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + } | ||
| 122 | + | ||
| 123 | + }catch (Exception e) { | ||
| 124 | + logger.error("", e); | ||
| 125 | + } | ||
| 126 | + } | ||
| 127 | + | ||
| 128 | + /*private void calc(String rq) { | ||
| 129 | + try { | ||
| 130 | + logger.info("开始结算工时: " + rq); | ||
| 131 | + List<WorkingHours_jsy> list = new ArrayList<>(); | ||
| 132 | + //实际班次,路单数据 | ||
| 133 | + List<ScheduleRealInfo> sjList = scheduleRealInfoService.findAll(rq); | ||
| 134 | + //计划班次,计调数据 | ||
| 135 | + List<ScheduleRealInfo> jhList = scheduleRealInfoService.findAll_JH(rq); | ||
| 136 | + | ||
| 137 | + //附加停站时间 | ||
| 138 | + addStopTime(sjList); | ||
| 139 | + addStopTime(jhList); | ||
| 140 | + | ||
| 141 | + //合计工时 | ||
| 142 | + List<WorkingHours_jsy> jhArray = count(jhList, true); | ||
| 143 | + List<WorkingHours_jsy> sjArray = count(sjList, false); | ||
| 144 | + | ||
| 145 | + //合并计划和实际 | ||
| 146 | + Map<String, WorkingHours_jsy> merges = new HashMap<>(); | ||
| 147 | + for (WorkingHours_jsy jh : jhArray) { | ||
| 148 | + jh.setHoursSj(0); | ||
| 149 | + merges.put(jh.keys(), jh); | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + String key; | ||
| 153 | + for (WorkingHours_jsy sj : sjArray) { | ||
| 154 | + key = sj.keys(); | ||
| 155 | + if (merges.containsKey(key)) { | ||
| 156 | + merges.get(key).setHoursSj(sj.getHoursSj()); | ||
| 157 | + } else { | ||
| 158 | + sj.setHoursJh(0); | ||
| 159 | + merges.put(key, sj); | ||
| 160 | + } | ||
| 161 | + } | ||
| 162 | + //入库 | ||
| 163 | + save(new ArrayList(merges.values())); | ||
| 164 | + logger.info("结算工时成功: " + rq + " -size: " + merges.values().size()); | ||
| 165 | + } catch (Exception e) { | ||
| 166 | + logger.error("", e); | ||
| 167 | + } | ||
| 168 | + }*/ | ||
| 169 | + | ||
| 170 | + private void addStopTime(List<ScheduleRealInfo> list) throws NoSuchFieldException { | ||
| 171 | + Class clazz = ScheduleRealInfo.class; | ||
| 172 | + //按驾驶员分组班次 | ||
| 173 | + ArrayListMultimap<String, ScheduleRealInfo> multimap = new ConvertUtil<ScheduleRealInfo>() | ||
| 174 | + .groupMultiList(list, "", clazz.getDeclaredField("jGh")); | ||
| 175 | + | ||
| 176 | + //为班次附上停站时间 | ||
| 177 | + Set<String> ks = multimap.keySet(); | ||
| 178 | + for (String k : ks) { | ||
| 179 | + calcOne(multimap.get(k)); | ||
| 180 | + } | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + private List<WorkingHours_jsy> count(List<ScheduleRealInfo> list, boolean isJh) throws NoSuchFieldException { | ||
| 184 | + List<WorkingHours_jsy> rs = new ArrayList<>(); | ||
| 185 | + Class clazz = ScheduleRealInfo.class; | ||
| 186 | + //按 线路_路牌_驾驶员_车辆分组数据 | ||
| 187 | + Field xl_f = clazz.getDeclaredField("xlBm"), | ||
| 188 | + lp_f = clazz.getDeclaredField("lpName"), | ||
| 189 | + jsy_f = clazz.getDeclaredField("jGh"), | ||
| 190 | + cl_f = clazz.getDeclaredField("clZbh"); | ||
| 191 | + | ||
| 192 | + ArrayListMultimap<String, ScheduleRealInfo> multimap = new ConvertUtil<ScheduleRealInfo>() | ||
| 193 | + .groupMultiList(list, "_", xl_f, lp_f, jsy_f, cl_f); | ||
| 194 | + | ||
| 195 | + //合计工时 | ||
| 196 | + Date d = new Date(); | ||
| 197 | + Set<String> ks = multimap.keySet(); | ||
| 198 | + WorkingHours_jsy wh; | ||
| 199 | + for (String k : ks) { | ||
| 200 | + wh = sum(multimap.get(k), isJh); | ||
| 201 | + wh.setCreateDate(d); | ||
| 202 | + rs.add(wh); | ||
| 203 | + } | ||
| 204 | + | ||
| 205 | + return rs; | ||
| 206 | + } | ||
| 207 | + | ||
| 208 | + private void save(final List<WorkingHours_jsy> list) { | ||
| 209 | + String sql = "insert into z_calc_hoursjsy(company_id, sub_company_id, line_code, line_name, jsy, jsy_name, nbbm, lp_name, rq, hours_jh, hours_sj, source, remarks, create_date) " + | ||
| 210 | + " VALUES(?, ?, ?, ?, ?,?, ?, ?,?,?,?,?,?,?)"; | ||
| 211 | + | ||
| 212 | + //编程式事务 | ||
| 213 | + DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource()); | ||
| 214 | + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); | ||
| 215 | + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); | ||
| 216 | + TransactionStatus status = tran.getTransaction(def); | ||
| 217 | + | ||
| 218 | + try { | ||
| 219 | + jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { | ||
| 220 | + @Override | ||
| 221 | + public void setValues(PreparedStatement ps, int i) throws SQLException { | ||
| 222 | + WorkingHours_jsy wh = list.get(i); | ||
| 223 | + ps.setString(1, wh.getCompanyId()); | ||
| 224 | + ps.setString(2, wh.getSubCompanyId()); | ||
| 225 | + ps.setString(3, wh.getLineCode()); | ||
| 226 | + ps.setString(4, wh.getLineName()); | ||
| 227 | + ps.setString(5, wh.getJsy()); | ||
| 228 | + ps.setString(6, wh.getJsyName()); | ||
| 229 | + ps.setString(7, wh.getNbbm()); | ||
| 230 | + ps.setString(8, wh.getLpName()); | ||
| 231 | + ps.setString(9, wh.getRq()); | ||
| 232 | + ps.setDouble(10, wh.getHoursJh()); | ||
| 233 | + ps.setDouble(11, wh.getHoursSj()); | ||
| 234 | + ps.setInt(12, wh.getSource()); | ||
| 235 | + ps.setString(13, wh.getRemarks()); | ||
| 236 | + ps.setDate(14, new java.sql.Date(wh.getCreateDate().getTime())); | ||
| 237 | + } | ||
| 238 | + | ||
| 239 | + @Override | ||
| 240 | + public int getBatchSize() { | ||
| 241 | + return list.size(); | ||
| 242 | + } | ||
| 243 | + }); | ||
| 244 | + | ||
| 245 | + tran.commit(status); | ||
| 246 | + } catch (Exception e) { | ||
| 247 | + tran.rollback(status); | ||
| 248 | + logger.error("", e); | ||
| 249 | + } | ||
| 250 | + } | ||
| 251 | + | ||
| 252 | + | ||
| 253 | + /** | ||
| 254 | + * 合计工时 | ||
| 255 | + * | ||
| 256 | + * @param list | ||
| 257 | + * @return | ||
| 258 | + */ | ||
| 259 | + private WorkingHours_jsy sum(List<ScheduleRealInfo> list, boolean jh) { | ||
| 260 | + ScheduleRealInfo sch = list.get(0); | ||
| 261 | + WorkingHours_jsy wh = new WorkingHours_jsy(); | ||
| 262 | + | ||
| 263 | + wh.setCompanyId(sch.getGsBm()); | ||
| 264 | + wh.setSubCompanyId(sch.getFgsBm()); | ||
| 265 | + wh.setLineCode(sch.getXlBm()); | ||
| 266 | + wh.setLpName(sch.getLpName()); | ||
| 267 | + wh.setJsy(sch.getjGh()); | ||
| 268 | + wh.setJsyName(sch.getjName()); | ||
| 269 | + wh.setNbbm(sch.getClZbh()); | ||
| 270 | + wh.setLineName(sch.getXlName()); | ||
| 271 | + wh.setRq(sch.getScheduleDateStr()); | ||
| 272 | + //wh.set | ||
| 273 | + Integer sum = 0; | ||
| 274 | + | ||
| 275 | + for (ScheduleRealInfo s : list) { | ||
| 276 | + sum += s.getHours(); | ||
| 277 | + } | ||
| 278 | + | ||
| 279 | + if (jh) | ||
| 280 | + wh.setHoursJh(sum); | ||
| 281 | + else | ||
| 282 | + wh.setHoursSj(sum); | ||
| 283 | + return wh; | ||
| 284 | + } | ||
| 285 | + | ||
| 286 | + /** | ||
| 287 | + * 计算每个班次的工时(包括停站时间) | ||
| 288 | + * | ||
| 289 | + * @param list | ||
| 290 | + */ | ||
| 291 | + private void calcOne(List<ScheduleRealInfo> list) { | ||
| 292 | + if (list.size() <= 1) | ||
| 293 | + return; | ||
| 294 | + | ||
| 295 | + | ||
| 296 | + Collections.sort(list, new Comparator<ScheduleRealInfo>() { | ||
| 297 | + @Override | ||
| 298 | + public int compare(ScheduleRealInfo s1, ScheduleRealInfo s2) { | ||
| 299 | + return (int) (s1.getDfsjT() - s2.getDfsjT()); | ||
| 300 | + } | ||
| 301 | + }); | ||
| 302 | + | ||
| 303 | + int len = list.size() - 1; | ||
| 304 | + for (int i = 0; i < len; i++) { | ||
| 305 | + calcToNextHours(list.get(i), list.get(i + 1)); | ||
| 306 | + } | ||
| 307 | + | ||
| 308 | + } | ||
| 309 | + | ||
| 310 | + /** | ||
| 311 | + * 当前班次 和 下一个班次计算工时 | ||
| 312 | + * | ||
| 313 | + * @param sch | ||
| 314 | + * @param next | ||
| 315 | + */ | ||
| 316 | + private void calcToNextHours(ScheduleRealInfo sch, ScheduleRealInfo next) { | ||
| 317 | + /*if(sch.getjGh().equals("008435") && sch.getClZbh().equals("W0F-017")) | ||
| 318 | + System.out.println("aaa");*/ | ||
| 319 | + //分班班次 | ||
| 320 | + /*if (isIn(sch) && isOut(next) ) | ||
| 321 | + return;*/ | ||
| 322 | + | ||
| 323 | + //分班间隔 | ||
| 324 | + if (next.getFcsjT() - sch.getFcsjT() >= FB_THRESHOLD_TIME){ | ||
| 325 | + if(sch.getStatus()==-1) | ||
| 326 | + sch.setHours(0); | ||
| 327 | + return; | ||
| 328 | + } | ||
| 329 | + | ||
| 330 | + //把停站时间算进去 | ||
| 331 | + //sch.setHours((int) ((next.getFcsjT() - sch.getFcsjT()) / 1000 / 60)); | ||
| 332 | + sch.setHours((int) ((next.getFcsjActualTime() - sch.getFcsjActualTime()) / 1000 / 60)); | ||
| 333 | + } | ||
| 334 | + | ||
| 335 | + private boolean isIn(ScheduleRealInfo sch) { | ||
| 336 | + return sch.getBcType().equals("in"); | ||
| 337 | + } | ||
| 338 | + | ||
| 339 | + private boolean isOut(ScheduleRealInfo sch) { | ||
| 340 | + return sch.getBcType().equals("out"); | ||
| 341 | + } | ||
| 342 | +} |
src/main/java/com/bsth/repository/ScheduleRealInfoRepository.java
0 → 100644
| 1 | +package com.bsth.repository; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.ScheduleRealInfo; | ||
| 4 | +import org.springframework.data.jpa.repository.EntityGraph; | ||
| 5 | +import org.springframework.data.jpa.repository.Query; | ||
| 6 | +import org.springframework.data.repository.PagingAndSortingRepository; | ||
| 7 | +import org.springframework.stereotype.Repository; | ||
| 8 | + | ||
| 9 | +import java.util.List; | ||
| 10 | + | ||
| 11 | +@Repository | ||
| 12 | +public interface ScheduleRealInfoRepository extends PagingAndSortingRepository<ScheduleRealInfo, Long> { | ||
| 13 | + | ||
| 14 | + /** | ||
| 15 | + * 根据日期获取班次信息 | ||
| 16 | + * @param schDate | ||
| 17 | + * @return | ||
| 18 | + */ | ||
| 19 | + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) | ||
| 20 | + @Query("select DISTINCT s from ScheduleRealInfo s where s.scheduleDateStr=?1") | ||
| 21 | + List<ScheduleRealInfo> findAll(String schDate); | ||
| 22 | + | ||
| 23 | + /** | ||
| 24 | + * 根据日期和线路编码获取班次信息 | ||
| 25 | + * @param schDate | ||
| 26 | + * @param lineCode | ||
| 27 | + * @return | ||
| 28 | + */ | ||
| 29 | + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) | ||
| 30 | + @Query("select DISTINCT s from ScheduleRealInfo s where s.scheduleDateStr=?1 and s.xlBm=?2") | ||
| 31 | + List<ScheduleRealInfo> findAll(String schDate, String lineCode); | ||
| 32 | + | ||
| 33 | + /** | ||
| 34 | + * 获取大于指定日期的班次信息 | ||
| 35 | + * @param schDate | ||
| 36 | + * @return | ||
| 37 | + */ | ||
| 38 | + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) | ||
| 39 | + @Query("select DISTINCT s from ScheduleRealInfo s where s.scheduleDateStr>?1") | ||
| 40 | + List<ScheduleRealInfo> findByDateLT(String schDate); | ||
| 41 | +} |
src/main/java/com/bsth/service/LineConfigService.java
0 → 100644
| 1 | +package com.bsth.service; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.LineConfig; | ||
| 4 | + | ||
| 5 | +import java.util.List; | ||
| 6 | +import java.util.Map; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * Created by panzhao on 2017/7/27. | ||
| 10 | + */ | ||
| 11 | +public interface LineConfigService { | ||
| 12 | + | ||
| 13 | + Map<String,LineConfig> findAll(); | ||
| 14 | + | ||
| 15 | + List<LineConfig> findAllList(); | ||
| 16 | +} |
src/main/java/com/bsth/service/ScheduleRealInfoService.java
0 → 100644
| 1 | +package com.bsth.service; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.ScheduleRealInfo; | ||
| 4 | +import com.bsth.entity.result.CalcWaybill; | ||
| 5 | + | ||
| 6 | +import java.util.List; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * Created by panzhao on 2017/7/27. | ||
| 10 | + */ | ||
| 11 | +public interface ScheduleRealInfoService { | ||
| 12 | + | ||
| 13 | + List<CalcWaybill> findAll(String rq,String lineCode); | ||
| 14 | + | ||
| 15 | +} |
src/main/java/com/bsth/service/impl/LineConfigServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.impl; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.LineConfig; | ||
| 4 | +import com.bsth.service.LineConfigService; | ||
| 5 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 6 | +import org.springframework.jdbc.core.BeanPropertyRowMapper; | ||
| 7 | +import org.springframework.jdbc.core.JdbcTemplate; | ||
| 8 | +import org.springframework.stereotype.Service; | ||
| 9 | + | ||
| 10 | +import java.util.HashMap; | ||
| 11 | +import java.util.List; | ||
| 12 | +import java.util.Map; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * Created by panzhao on 2017/7/27. | ||
| 16 | + */ | ||
| 17 | +@Service | ||
| 18 | +public class LineConfigServiceImpl implements LineConfigService { | ||
| 19 | + | ||
| 20 | + @Autowired | ||
| 21 | + JdbcTemplate jdbcTemplate; | ||
| 22 | + | ||
| 23 | + @Override | ||
| 24 | + public Map<String, LineConfig> findAll() { | ||
| 25 | + String sql = "select c.id,c.out_config,c.start_opt,c.trust,t.line_code from bsth_c_line_config c LEFT JOIN bsth_c_line t on c.line=t.id"; | ||
| 26 | + List<LineConfig> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(LineConfig.class)); | ||
| 27 | + | ||
| 28 | + Map<String, LineConfig> rs = new HashMap<>(); | ||
| 29 | + for(LineConfig config : list){ | ||
| 30 | + rs.put(config.getLineCode(), config); | ||
| 31 | + } | ||
| 32 | + return rs; | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public List<LineConfig> findAllList() { | ||
| 37 | + String sql = "select c.id,c.out_config,c.start_opt,c.trust,t.line_code from bsth_c_line_config c LEFT JOIN bsth_c_line t on c.line=t.id"; | ||
| 38 | + List<LineConfig> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(LineConfig.class)); | ||
| 39 | + | ||
| 40 | + return list; | ||
| 41 | + } | ||
| 42 | +} |
src/main/java/com/bsth/service/impl/ScheduleRealInfoServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.impl; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.LineConfig; | ||
| 4 | +import com.bsth.entity.ScheduleRealInfo; | ||
| 5 | +import com.bsth.entity.result.CalcWaybill; | ||
| 6 | +import com.bsth.repository.ScheduleRealInfoRepository; | ||
| 7 | +import com.bsth.service.LineConfigService; | ||
| 8 | +import com.bsth.service.ScheduleRealInfoService; | ||
| 9 | +import org.apache.commons.lang3.StringUtils; | ||
| 10 | +import org.joda.time.format.DateTimeFormat; | ||
| 11 | +import org.joda.time.format.DateTimeFormatter; | ||
| 12 | +import org.slf4j.Logger; | ||
| 13 | +import org.slf4j.LoggerFactory; | ||
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 15 | +import org.springframework.jdbc.core.JdbcTemplate; | ||
| 16 | +import org.springframework.jdbc.core.RowMapper; | ||
| 17 | +import org.springframework.stereotype.Service; | ||
| 18 | + | ||
| 19 | +import java.sql.ResultSet; | ||
| 20 | +import java.sql.SQLException; | ||
| 21 | +import java.util.ArrayList; | ||
| 22 | +import java.util.HashMap; | ||
| 23 | +import java.util.List; | ||
| 24 | +import java.util.Map; | ||
| 25 | +import java.util.Set; | ||
| 26 | +import com.bsth.entity.ChildTaskPlan; | ||
| 27 | + | ||
| 28 | +/** | ||
| 29 | + * Created by panzhao on 2017/7/27. | ||
| 30 | + */ | ||
| 31 | +@Service | ||
| 32 | +public class ScheduleRealInfoServiceImpl implements ScheduleRealInfoService { | ||
| 33 | + | ||
| 34 | + @Autowired | ||
| 35 | + ScheduleRealInfoRepository scheduleRealInfoRepository; | ||
| 36 | + | ||
| 37 | + @Autowired | ||
| 38 | + JdbcTemplate jdbcTemplate; | ||
| 39 | + | ||
| 40 | + @Autowired | ||
| 41 | + LineConfigService lineConfigService; | ||
| 42 | + | ||
| 43 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
| 44 | + | ||
| 45 | + private static DateTimeFormatter fmtyyyyMMddHHmm = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm"), | ||
| 46 | + fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"), | ||
| 47 | + fmtHHmm = DateTimeFormat.forPattern("HH:mm"); | ||
| 48 | + | ||
| 49 | + private final static long DAY_TIME = 1000 * 60 * 60 * 24L; | ||
| 50 | + | ||
| 51 | + @Override | ||
| 52 | + public List<CalcWaybill> findAll(String rq,String lineCode) { | ||
| 53 | + List<ScheduleRealInfo> list = scheduleRealInfoRepository.findAll(rq,lineCode); | ||
| 54 | + String sql ="select r.j_gh ,r.s_gh,r.cl_zbh,r.xl_bm, r.lp_name FROM" | ||
| 55 | + + " bsth_c_s_sp_info_real r where " | ||
| 56 | + + " r.schedule_date_str='"+rq+"' and r.xl_bm = '"+lineCode+"'" | ||
| 57 | + + " GROUP BY r.j_gh,r.xl_bm,r.lp_name "; | ||
| 58 | + | ||
| 59 | + List<Map<String, String>> listMap = jdbcTemplate.query(sql, new RowMapper<Map<String, String>>() { | ||
| 60 | + @Override | ||
| 61 | + public Map<String, String> mapRow(ResultSet arg0, int arg1) throws SQLException { | ||
| 62 | + Map<String, String> c = new HashMap<String,String>(); | ||
| 63 | + c.put("jGh", arg0.getString("j_gh")); | ||
| 64 | + c.put("sGh", arg0.getString("s_gh")==null?"":arg0.getString("s_gh")); | ||
| 65 | + c.put("clZbh", arg0.getString("cl_zbh")); | ||
| 66 | + c.put("xlBm", arg0.getString("xl_bm")); | ||
| 67 | + c.put("lpName", arg0.getString("lp_name")); | ||
| 68 | + return c; | ||
| 69 | + } | ||
| 70 | + }); | ||
| 71 | + for (int i = 0; i < listMap.size(); i++) { | ||
| 72 | + Map<String, String> m=listMap.get(i); | ||
| 73 | + String jGh=m.get("jGh"); | ||
| 74 | + String sGh=m.get("sGh"); | ||
| 75 | + String clZbh=m.get("clZbh"); | ||
| 76 | + String xlBm=m.get("xlBm"); | ||
| 77 | + String lpName=m.get("lpName"); | ||
| 78 | + //所有数据排班数据 | ||
| 79 | + List<ScheduleRealInfo> list_=new ArrayList<ScheduleRealInfo>(); | ||
| 80 | + //执行了的班次的排班数据 | ||
| 81 | + List<ScheduleRealInfo> lists_=new ArrayList<ScheduleRealInfo>(); | ||
| 82 | + for (int j = 0; j < list.size(); j++) { | ||
| 83 | + ScheduleRealInfo s=list.get(j); | ||
| 84 | + if(jGh.equals(s.getjGh()) | ||
| 85 | + && sGh.equals(s.getsGh()==null?"":s.getsGh()) | ||
| 86 | + && clZbh.equals(s.getClZbh()) | ||
| 87 | + && xlBm.equals(s.getXlBm()) | ||
| 88 | + && lpName.equals(s.getLpName())){ | ||
| 89 | + | ||
| 90 | + list_.add(s); | ||
| 91 | + | ||
| 92 | + Set<ChildTaskPlan> cts = s.getcTasks(); | ||
| 93 | + if(cts != null && cts.size() > 0){ | ||
| 94 | + lists_.add(s); | ||
| 95 | + }else{ | ||
| 96 | + if(s.getZdsjActual()!=null | ||
| 97 | + && s.getFcsjActual() !=null){ | ||
| 98 | + lists_.add(s); | ||
| 99 | + } | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | + | ||
| 105 | + } | ||
| 106 | + return null; | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | +} |
src/main/java/com/bsth/thread/WaybillCalcThrad.java
0 → 100644
| 1 | +package com.bsth.thread; | ||
| 2 | + | ||
| 3 | +import com.bsth.handler.UserCarCountHandler; | ||
| 4 | +import org.slf4j.Logger; | ||
| 5 | +import org.slf4j.LoggerFactory; | ||
| 6 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 7 | +import org.springframework.stereotype.Component; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 人员车辆班次里程计算线程 | ||
| 11 | + */ | ||
| 12 | +@Component | ||
| 13 | +public class WaybillCalcThrad extends Thread { | ||
| 14 | + | ||
| 15 | + | ||
| 16 | + @Autowired | ||
| 17 | + UserCarCountHandler userCarCountHandler; | ||
| 18 | + | ||
| 19 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
| 20 | + | ||
| 21 | + @Override | ||
| 22 | + public void run() { | ||
| 23 | + try { | ||
| 24 | + userCarCountHandler.calcLast(); | ||
| 25 | + } catch (Exception e) { | ||
| 26 | + logger.error("", e); | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | +} |
src/main/java/com/bsth/util/Arith.java
0 → 100644
| 1 | +package com.bsth.util; | ||
| 2 | + | ||
| 3 | +import java.math.BigDecimal; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * 进行BigDecimal对象的加减乘除,四舍五入等运算的工具类 | ||
| 7 | + * @author ameyume | ||
| 8 | + * | ||
| 9 | + */ | ||
| 10 | +public class Arith { | ||
| 11 | + | ||
| 12 | + /** | ||
| 13 | + * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 | ||
| 14 | + * 确的浮点数运算,包括加减乘除和四舍五入。 | ||
| 15 | + */ | ||
| 16 | + //默认除法运算精度 | ||
| 17 | + private static final int DEF_DIV_SCALE = 10; | ||
| 18 | + | ||
| 19 | + //这个类不能实例化 | ||
| 20 | + private Arith(){ | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + /** | ||
| 24 | + * 提供精确的加法运算。 | ||
| 25 | + * @param v1 被加数 | ||
| 26 | + * @param v2 加数 | ||
| 27 | + * @return 两个参数的和 | ||
| 28 | + */ | ||
| 29 | + public static double add(Object v1,Object v2){ | ||
| 30 | + BigDecimal b1 = new BigDecimal(String.valueOf(v1)); | ||
| 31 | + BigDecimal b2 = new BigDecimal(String.valueOf(v2)); | ||
| 32 | + return b1.add(b2).doubleValue(); | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + /** | ||
| 36 | + * 提供精确的减法运算。 | ||
| 37 | + * @param v1 被减数 | ||
| 38 | + * @param v2 减数 | ||
| 39 | + * @return 两个参数的差 | ||
| 40 | + */ | ||
| 41 | + public static double sub(Object v1,Object v2){ | ||
| 42 | + BigDecimal b1 = new BigDecimal(String.valueOf(v1)); | ||
| 43 | + BigDecimal b2 = new BigDecimal(String.valueOf(v2)); | ||
| 44 | + return b1.subtract(b2).doubleValue(); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + /** | ||
| 48 | + * 提供精确的乘法运算。 | ||
| 49 | + * @param v1 被乘数 | ||
| 50 | + * @param v2 乘数 | ||
| 51 | + * @return 两个参数的积 | ||
| 52 | + */ | ||
| 53 | + public static double mul(Object v1,Object v2){ | ||
| 54 | + BigDecimal b1 = new BigDecimal(String.valueOf(v1)); | ||
| 55 | + BigDecimal b2 = new BigDecimal(String.valueOf(v2)); | ||
| 56 | + return b1.multiply(b2).doubleValue(); | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + /** | ||
| 60 | + * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 | ||
| 61 | + * 小数点以后10位,以后的数字四舍五入。 | ||
| 62 | + * @param v1 被除数 | ||
| 63 | + * @param v2 除数 | ||
| 64 | + * @return 两个参数的商 | ||
| 65 | + */ | ||
| 66 | + public static double div(Object v1,Object v2){ | ||
| 67 | + return div(v1,v2,DEF_DIV_SCALE); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + /** | ||
| 71 | + * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 | ||
| 72 | + * 定精度,以后的数字四舍五入。 | ||
| 73 | + * @param v1 被除数 | ||
| 74 | + * @param v2 除数 | ||
| 75 | + * @param scale 表示表示需要精确到小数点以后几位。 | ||
| 76 | + * @return 两个参数的商 | ||
| 77 | + */ | ||
| 78 | + public static double div(Object v1,Object v2,int scale){ | ||
| 79 | + if(scale<0){ | ||
| 80 | + throw new IllegalArgumentException( | ||
| 81 | + "The scale must be a positive integer or zero"); | ||
| 82 | + } | ||
| 83 | + BigDecimal b1 = new BigDecimal(String.valueOf(v1)); | ||
| 84 | + BigDecimal b2 = new BigDecimal(String.valueOf(v2)); | ||
| 85 | + return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + /** | ||
| 89 | + * 提供精确的小数位四舍五入处理。 | ||
| 90 | + * @param v 需要四舍五入的数字 | ||
| 91 | + * @param scale 小数点后保留几位 | ||
| 92 | + * @return 四舍五入后的结果 | ||
| 93 | + */ | ||
| 94 | + public static double round(Object v,int scale){ | ||
| 95 | + if(scale<0){ | ||
| 96 | + throw new IllegalArgumentException( | ||
| 97 | + "The scale must be a positive integer or zero"); | ||
| 98 | + } | ||
| 99 | + BigDecimal b = new BigDecimal(String.valueOf(v)); | ||
| 100 | + BigDecimal one = new BigDecimal("1"); | ||
| 101 | + return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | + /** | ||
| 105 | + * 提供精确的类型转换(Float) | ||
| 106 | + * @param v 需要被转换的数字 | ||
| 107 | + * @return 返回转换结果 | ||
| 108 | + */ | ||
| 109 | + public static float convertsToFloat(double v){ | ||
| 110 | + BigDecimal b = new BigDecimal(v); | ||
| 111 | + return b.floatValue(); | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + /** | ||
| 115 | + * 提供精确的类型转换(Int)不进行四舍五入 | ||
| 116 | + * @param v 需要被转换的数字 | ||
| 117 | + * @return 返回转换结果 | ||
| 118 | + */ | ||
| 119 | + public static int convertsToInt(double v){ | ||
| 120 | + BigDecimal b = new BigDecimal(v); | ||
| 121 | + return b.intValue(); | ||
| 122 | + } | ||
| 123 | + | ||
| 124 | + /** | ||
| 125 | + * 提供精确的类型转换(Long) | ||
| 126 | + * @param v 需要被转换的数字 | ||
| 127 | + * @return 返回转换结果 | ||
| 128 | + */ | ||
| 129 | + public static long convertsToLong(double v){ | ||
| 130 | + BigDecimal b = new BigDecimal(v); | ||
| 131 | + return b.longValue(); | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + /** | ||
| 135 | + * 返回两个数中大的一个值 | ||
| 136 | + * @param v1 需要被对比的第一个数 | ||
| 137 | + * @param v2 需要被对比的第二个数 | ||
| 138 | + * @return 返回两个数中大的一个值 | ||
| 139 | + */ | ||
| 140 | + public static double returnMax(double v1,double v2){ | ||
| 141 | + BigDecimal b1 = new BigDecimal(v1); | ||
| 142 | + BigDecimal b2 = new BigDecimal(v2); | ||
| 143 | + return b1.max(b2).doubleValue(); | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + /** | ||
| 147 | + * 返回两个数中小的一个值 | ||
| 148 | + * @param v1 需要被对比的第一个数 | ||
| 149 | + * @param v2 需要被对比的第二个数 | ||
| 150 | + * @return 返回两个数中小的一个值 | ||
| 151 | + */ | ||
| 152 | + public static double returnMin(double v1,double v2){ | ||
| 153 | + BigDecimal b1 = new BigDecimal(v1); | ||
| 154 | + BigDecimal b2 = new BigDecimal(v2); | ||
| 155 | + return b1.min(b2).doubleValue(); | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + /** | ||
| 159 | + * 精确对比两个数字 | ||
| 160 | + * @param v1 需要被对比的第一个数 | ||
| 161 | + * @param v2 需要被对比的第二个数 | ||
| 162 | + * @return 如果两个数一样则返回0,如果第一个数比第二个数大则返回1,反之返回-1 | ||
| 163 | + */ | ||
| 164 | + public static int compareTo(double v1,double v2){ | ||
| 165 | + BigDecimal b1 = new BigDecimal(v1); | ||
| 166 | + BigDecimal b2 = new BigDecimal(v2); | ||
| 167 | + return b1.compareTo(b2); | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | +} | ||
| 0 | \ No newline at end of file | 171 | \ No newline at end of file |
src/main/java/com/bsth/util/ConfigUtil.java
0 → 100644
| 1 | +package com.bsth.util; | ||
| 2 | + | ||
| 3 | +public class ConfigUtil { | ||
| 4 | + | ||
| 5 | + static Tools tools; | ||
| 6 | + | ||
| 7 | + static{ | ||
| 8 | + tools = new Tools("application.properties"); | ||
| 9 | + String active = tools.getValue("spring.profiles.active"); | ||
| 10 | + tools = new Tools("application-"+active+".properties"); | ||
| 11 | + } | ||
| 12 | + | ||
| 13 | + public static String get(String key){ | ||
| 14 | + return tools.getValue(key); | ||
| 15 | + } | ||
| 16 | +} |
src/main/java/com/bsth/util/ConvertUtil.java
0 → 100644
| 1 | +package com.bsth.util; | ||
| 2 | + | ||
| 3 | +import com.google.common.collect.ArrayListMultimap; | ||
| 4 | +import org.joda.time.format.DateTimeFormat; | ||
| 5 | +import org.joda.time.format.DateTimeFormatter; | ||
| 6 | +import org.slf4j.Logger; | ||
| 7 | +import org.slf4j.LoggerFactory; | ||
| 8 | + | ||
| 9 | +import java.lang.reflect.Field; | ||
| 10 | +import java.util.*; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 数据转换 | ||
| 14 | + * Created by panzhao on 2017/3/13. | ||
| 15 | + */ | ||
| 16 | +public class ConvertUtil<T> { | ||
| 17 | + | ||
| 18 | + Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
| 19 | + private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyyMMdd"); | ||
| 20 | + | ||
| 21 | + /** | ||
| 22 | + * 根据指定字段 将 list 分组 | ||
| 23 | + * | ||
| 24 | + * @param list | ||
| 25 | + * @param separator 字段使用分隔符连接 组成key | ||
| 26 | + * @param fields | ||
| 27 | + * @return | ||
| 28 | + */ | ||
| 29 | + public ArrayListMultimap<String, T> groupMultiList(List<T> list, String separator, Field... fields) { | ||
| 30 | + ArrayListMultimap<String, T> multimap = ArrayListMultimap.create(); | ||
| 31 | + | ||
| 32 | + String key; | ||
| 33 | + //Object field; | ||
| 34 | + try { | ||
| 35 | + for (T t : list) { | ||
| 36 | + | ||
| 37 | + key = ""; | ||
| 38 | + for (Field f : fields) { | ||
| 39 | + f.setAccessible(true); | ||
| 40 | + //日期类型格式化为 YYYY-MM-DD | ||
| 41 | + if (f.getType().equals(Date.class)) | ||
| 42 | + key += (separator + fmtyyyyMMdd.print(((Date) f.get(t)).getTime())); | ||
| 43 | + else | ||
| 44 | + key += (separator + f.get(t).toString()); | ||
| 45 | + } | ||
| 46 | + key = key.substring(1); | ||
| 47 | + | ||
| 48 | + multimap.put(key, t); | ||
| 49 | + } | ||
| 50 | + } catch (Exception e) { | ||
| 51 | + logger.error("", e); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + return multimap; | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + /** | ||
| 58 | + * 根据指定字段 将 list 分组 | ||
| 59 | + * | ||
| 60 | + * @param list | ||
| 61 | + * @param separator 字段使用分隔符连接 组成key | ||
| 62 | + * @param fields | ||
| 63 | + * @return | ||
| 64 | + */ | ||
| 65 | + public Map<String, T> groupList(List<T> list, String separator, Field... fields) { | ||
| 66 | + Map<String, T> map = new HashMap<>(); | ||
| 67 | + | ||
| 68 | + String key; | ||
| 69 | + //Object field; | ||
| 70 | + try { | ||
| 71 | + for (T t : list) { | ||
| 72 | + | ||
| 73 | + key = ""; | ||
| 74 | + for (Field f : fields) { | ||
| 75 | + f.setAccessible(true); | ||
| 76 | + //日期类型格式化为 YYYY-MM-DD | ||
| 77 | + if (f.getType().equals(Date.class)) | ||
| 78 | + key += (separator + fmtyyyyMMdd.print(((Date) f.get(t)).getTime())); | ||
| 79 | + else | ||
| 80 | + key += (separator + f.get(t).toString()); | ||
| 81 | + } | ||
| 82 | + key = key.substring(1); | ||
| 83 | + | ||
| 84 | + map.put(key, t); | ||
| 85 | + } | ||
| 86 | + } catch (Exception e) { | ||
| 87 | + logger.error("", e); | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + return map; | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + /** | ||
| 94 | + * 计算并集 | ||
| 95 | + * | ||
| 96 | + * @param all | ||
| 97 | + * @param sub | ||
| 98 | + * @return | ||
| 99 | + */ | ||
| 100 | + public List<String> calcUnion(Collection<String> all, Collection<String> sub) { | ||
| 101 | + List<String> rs = new ArrayList<>(); | ||
| 102 | + | ||
| 103 | + for (String str : all) { | ||
| 104 | + if (sub.contains(str)) | ||
| 105 | + rs.add(str); | ||
| 106 | + } | ||
| 107 | + return rs; | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + /** | ||
| 111 | + * 计算补集 | ||
| 112 | + * | ||
| 113 | + * @param all | ||
| 114 | + * @param sub | ||
| 115 | + * @return | ||
| 116 | + */ | ||
| 117 | + public List<String> calcComplement(Collection<String> all, Collection<String> sub) { | ||
| 118 | + List<String> rs = new ArrayList<>(); | ||
| 119 | + | ||
| 120 | + for (String str : all) { | ||
| 121 | + if (!sub.contains(str)) | ||
| 122 | + rs.add(str); | ||
| 123 | + } | ||
| 124 | + return rs; | ||
| 125 | + } | ||
| 126 | +} |
src/main/java/com/bsth/util/Tools.java
0 → 100644
| 1 | +package com.bsth.util; | ||
| 2 | + | ||
| 3 | +import java.io.IOException; | ||
| 4 | +import java.util.Properties; | ||
| 5 | + | ||
| 6 | +public class Tools { | ||
| 7 | + private static Properties p = new Properties(); | ||
| 8 | + private static String f; | ||
| 9 | + public Tools(String file){ | ||
| 10 | + f = file; | ||
| 11 | + try { | ||
| 12 | + p.load(Tools.class.getClassLoader().getResourceAsStream(f)); | ||
| 13 | + } catch (IOException e) { | ||
| 14 | + e.printStackTrace(); | ||
| 15 | + } | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + /** | ||
| 19 | + * 根据key得到value的值 | ||
| 20 | + */ | ||
| 21 | + public String getValue(String key) | ||
| 22 | + { | ||
| 23 | + return p.getProperty(key); | ||
| 24 | + } | ||
| 25 | +} |
src/main/resources/application-dev.properties
0 → 100644
| 1 | +server.port=9089 | ||
| 2 | +management.port= 9001 | ||
| 3 | +management.address= 127.0.0.1 | ||
| 4 | + | ||
| 5 | +spring.jpa.hibernate.ddl-auto= none | ||
| 6 | +spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy | ||
| 7 | +#DATABASE | ||
| 8 | +spring.jpa.database= MYSQL | ||
| 9 | +spring.jpa.show-sql= true | ||
| 10 | +spring.datasource.driver-class-name= com.mysql.jdbc.Driver | ||
| 11 | +spring.datasource.url= jdbc:mysql://127.0.0.1/pd_control?useUnicode=true&characterEncoding=utf-8&useSSL=false | ||
| 12 | +spring.datasource.username= root | ||
| 13 | +spring.datasource.password= root | ||
| 14 | +#DATASOURCE | ||
| 15 | +spring.datasource.max-active=100 | ||
| 16 | +spring.datasource.max-idle=8 | ||
| 17 | +spring.datasource.min-idle=8 | ||
| 18 | +spring.datasource.initial-size=5 | ||
| 19 | + | ||
| 20 | +spring.datasource.test-on-borrow=true | ||
| 21 | +spring.datasource.test-on-connect=true | ||
| 22 | +spring.datasource.test-on-return=true | ||
| 23 | +spring.datasource.test-while-idle=true | ||
| 24 | +spring.datasource.validation-query=select 1 | ||
| 25 | + | ||
| 26 | +## calculator result database | ||
| 27 | +#calculator.datasource.driver= com.mysql.jdbc.Driver | ||
| 28 | +#calculator.datasource.url= jdbc:mysql://127.0.0.1/calculator?useUnicode=true&characterEncoding=utf-8&useSSL=false | ||
| 29 | +#calculator.datasource.username= root | ||
| 30 | +#calculator.datasource.password= panzhao |
src/main/resources/application-prod.properties
0 → 100644
| 1 | +server.port=9099 | ||
| 2 | +management.port= 9001 | ||
| 3 | +management.address= 127.0.0.1 | ||
| 4 | + | ||
| 5 | +spring.jpa.hibernate.ddl-auto= none | ||
| 6 | +spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy | ||
| 7 | +#DATABASE | ||
| 8 | +spring.jpa.database= MYSQL | ||
| 9 | +spring.jpa.show-sql= false | ||
| 10 | +spring.datasource.driver-class-name= com.mysql.jdbc.Driver | ||
| 11 | +spring.datasource.url= jdbc:mysql://10.10.150.20:3306/control?useUnicode=true&characterEncoding=utf-8&useSSL=false | ||
| 12 | +spring.datasource.username= root | ||
| 13 | +spring.datasource.password= root2jsp@JSP | ||
| 14 | +#DATASOURCE | ||
| 15 | +spring.datasource.max-active=50 | ||
| 16 | +spring.datasource.max-idle=8 | ||
| 17 | +spring.datasource.min-idle=8 | ||
| 18 | +spring.datasource.initial-size=3 | ||
| 19 | + | ||
| 20 | +spring.datasource.test-on-borrow=true | ||
| 21 | +spring.datasource.test-on-connect=true | ||
| 22 | +spring.datasource.test-on-return=true | ||
| 23 | +spring.datasource.test-while-idle=true | ||
| 24 | +spring.datasource.validation-query=select 1 | ||
| 0 | \ No newline at end of file | 25 | \ No newline at end of file |
src/main/resources/application.properties
0 → 100644
| 1 | +spring.profiles: dev,prod | ||
| 2 | +spring.profiles.active: dev | ||
| 3 | + | ||
| 4 | +spring.view.suffix=.html | ||
| 5 | +server.session-timeout=-1 | ||
| 6 | +security.basic.enabled=false | ||
| 7 | + | ||
| 8 | +# \u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u9650\u5236\u914D\u7F6E | ||
| 9 | +# File size limit | ||
| 10 | +multipart.maxFileSize = -1 | ||
| 11 | +# Total request size for a multipart/form-data | ||
| 12 | +multipart.maxRequestSize = -1 | ||
| 13 | + | ||
| 14 | +server.compression.enabled=true | ||
| 15 | +server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain,text/javascript,text/css,application/javascript | ||
| 16 | + | ||
| 17 | +#redis »º´æ¶àÉÙÌìµÄÊý¾Ý | ||
| 18 | +cache.days=60 |
src/main/resources/banner.txt
0 → 100644
src/main/resources/init.sql
0 → 100644
| 1 | +CREATE TABLE `bsth_control_r_hoursjsy` ( | ||
| 2 | + `id` bigint(11) NOT NULL AUTO_INCREMENT, | ||
| 3 | + `company_id` varchar(20) DEFAULT NULL, | ||
| 4 | + `sub_company_id` varchar(20) DEFAULT NULL, | ||
| 5 | + `line_code` varchar(100) DEFAULT NULL, | ||
| 6 | + `line_name` varchar(100) DEFAULT NULL, | ||
| 7 | + `jsy` varchar(100) DEFAULT NULL, | ||
| 8 | + `jsy_name` varchar(100) DEFAULT NULL, | ||
| 9 | + `nbbm` varchar(100) DEFAULT NULL, | ||
| 10 | + `lp_name` varchar(20) DEFAULT NULL, | ||
| 11 | + `rq` varchar(100) DEFAULT NULL, | ||
| 12 | + `hours_jh` float(10,0) DEFAULT NULL, | ||
| 13 | + `hours_sj` float(10,0) DEFAULT NULL, | ||
| 14 | + `fb_status` int(11) DEFAULT NULL, | ||
| 15 | + `source` int(11) DEFAULT NULL, | ||
| 16 | + `remarks` varchar(4000) DEFAULT NULL, | ||
| 17 | + PRIMARY KEY (`id`) | ||
| 18 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
| 0 | \ No newline at end of file | 19 | \ No newline at end of file |
src/main/resources/logback.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> --> | ||
| 3 | +<configuration> | ||
| 4 | + | ||
| 5 | + <!-- <property resource="application.properties" /> --> | ||
| 6 | + <property name="LOG_BASE" value="E:/calc_log" /> | ||
| 7 | + <!-- 控制台输出 --> | ||
| 8 | + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> | ||
| 9 | + | ||
| 10 | + <layout class="ch.qos.logback.classic.PatternLayout"> | ||
| 11 | + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> | ||
| 12 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] | ||
| 13 | + %-5level-%msg%n | ||
| 14 | + </pattern> | ||
| 15 | + </layout> | ||
| 16 | + </appender> | ||
| 17 | + | ||
| 18 | + <!-- 主日志文件 --> | ||
| 19 | + <appender name="FILE" | ||
| 20 | + class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
| 21 | + <file>${LOG_BASE}/calc_log.log</file> | ||
| 22 | + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
| 23 | + <fileNamePattern>${LOG_BASE}/calc_log-%d{yyyy-MM-dd}.%i.log</fileNamePattern> | ||
| 24 | + <timeBasedFileNamingAndTriggeringPolicy | ||
| 25 | + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||
| 26 | + <maxFileSize>100MB</maxFileSize> | ||
| 27 | + </timeBasedFileNamingAndTriggeringPolicy> | ||
| 28 | + </rollingPolicy> | ||
| 29 | + <encoder> | ||
| 30 | + <pattern>%msg%n</pattern> | ||
| 31 | + </encoder> | ||
| 32 | + | ||
| 33 | + <layout class="ch.qos.logback.classic.PatternLayout"> | ||
| 34 | + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> | ||
| 35 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] | ||
| 36 | + %-5level-%msg%n | ||
| 37 | + </pattern> | ||
| 38 | + </layout> | ||
| 39 | + </appender> | ||
| 40 | + | ||
| 41 | + | ||
| 42 | + <!-- 日志输出级别 --> | ||
| 43 | + <root level="info"> | ||
| 44 | + <appender-ref ref="STDOUT" /> | ||
| 45 | + <appender-ref ref="FILE" /> | ||
| 46 | + </root> | ||
| 47 | +</configuration> | ||
| 0 | \ No newline at end of file | 48 | \ No newline at end of file |