Commit 6dcdbbae by chamberone

fix: 修复文件访问问题

1 parent c1a0599a
......@@ -16,10 +16,8 @@
package com.dituhui.pea.dispatch.service.impl;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.time.Duration;
import java.util.ArrayList;
......@@ -40,9 +38,7 @@ import org.optaplanner.core.api.solver.SolverFactory;
import org.optaplanner.core.config.solver.SolverConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service;
import org.springframework.util.ResourceUtils;
import com.dituhui.pea.dispatch.constraint.VehicleRoutingConstraintProvider;
import com.dituhui.pea.dispatch.pojo.VehicleRoutingSolution;
......@@ -62,7 +58,7 @@ public class DispatchServiceImpl implements DispatchService {
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public Result<?> manualDispatch() throws UncheckedIOException, IOException {
public Result<?> manualDispatch() throws UncheckedIOException, FileNotFoundException {
logger.info("%s", "invoke manualDispatch");
// 创建解决方案对象
......@@ -101,9 +97,8 @@ public class DispatchServiceImpl implements DispatchService {
private static Map<String, Integer> loadCustomerCodeServiceTimeMap()
throws UncheckedIOException, IOException {
List<String> customerServiceTime = IOUtils.readLines(
new FileInputStream(new ClassPathResource("data/customerServiceTime.csv").getFile()), "utf-8");
throws UncheckedIOException, FileNotFoundException {
List<String> customerServiceTime = IOUtils.readLines(new FileInputStream("data/customerServiceTime.csv"), "utf-8");
Map<String, Integer> customerCodeServiceTimeMap = new HashMap<String, Integer>();// code-time
for (int i = 0; i < customerServiceTime.size(); i++) {
String line = customerServiceTime.get(i);
......@@ -114,9 +109,9 @@ public class DispatchServiceImpl implements DispatchService {
}
private static Map<String, Map<String, Long>> loadPreferredlocationDistanceMap()
throws UncheckedIOException, IOException {
throws UncheckedIOException, FileNotFoundException {
List<String> technicianCodeLocation = IOUtils
.readLines(new FileInputStream(new ClassPathResource("data/technicianLocation.csv").getFile()), "utf-8");
.readLines(new FileInputStream("data/technicianLocation.csv"), "utf-8");
Map<String, String> technicianCodeLocationMap = new HashMap<String, String>();// 序号-code
for (int i = 0; i < technicianCodeLocation.size(); i++) {
String line = technicianCodeLocation.get(i);
......@@ -125,7 +120,7 @@ public class DispatchServiceImpl implements DispatchService {
}
List<String> customerCodeLocation = IOUtils
.readLines(new FileInputStream(new ClassPathResource("data/customerLocation.csv").getFile()), "utf-8");
.readLines(new FileInputStream("data/customerLocation.csv"), "utf-8");
Map<String, String> customerCodeLocationMap = new HashMap<String, String>();// 序号-code
for (int i = 0; i < customerCodeLocation.size(); i++) {
String line = customerCodeLocation.get(i);
......@@ -173,8 +168,8 @@ public class DispatchServiceImpl implements DispatchService {
return 6378137 * c;
}
private static Map<String, String> loadCustomerCodeSkillMap() throws UncheckedIOException, IOException {
List<String> customerSkill = IOUtils.readLines(new FileInputStream(new ClassPathResource("data/customerSkill.csv").getFile()), "utf-8");
private static Map<String, String> loadCustomerCodeSkillMap() throws UncheckedIOException, FileNotFoundException {
List<String> customerSkill = IOUtils.readLines(new FileInputStream("data/customerSkill.csv"), "utf-8");
Map<String, String> customerCodeSkillMap = new HashMap<String, String>();// code-技能
for (int i = 0; i < customerSkill.size(); i++) {
String line = customerSkill.get(i);
......@@ -185,8 +180,8 @@ public class DispatchServiceImpl implements DispatchService {
}
private static Map<String, Set<String>> loadTechnicianCodeSkillsMap()
throws UncheckedIOException, IOException {
List<String> technicianSkills = IOUtils.readLines(new FileInputStream(new ClassPathResource("data/technicianSkills.csv").getFile()), "utf-8");
throws UncheckedIOException, FileNotFoundException {
List<String> technicianSkills = IOUtils.readLines(new FileInputStream("data/technicianSkills.csv"), "utf-8");
Map<String, Set<String>> technicianCodeSkillsMap = new HashMap<String, Set<String>>();// code-技能
for (int i = 0; i < technicianSkills.size(); i++) {
String line = technicianSkills.get(i);
......@@ -203,8 +198,8 @@ public class DispatchServiceImpl implements DispatchService {
return technicianCodeSkillsMap;
}
private static Map<Integer, String> loadTechnicianIndex() throws UncheckedIOException, IOException {
List<String> technicianIndexlines = IOUtils.readLines(new FileInputStream(new ClassPathResource("data/technicianIndex.csv").getFile()), "utf-8");
private static Map<Integer, String> loadTechnicianIndex() throws UncheckedIOException, FileNotFoundException {
List<String> technicianIndexlines = IOUtils.readLines(new FileInputStream("data/technicianIndex.csv"), "utf-8");
Map<Integer, String> technicianIndexMap = new HashMap<Integer, String>();// 序号-code
for (int i = 0; i < technicianIndexlines.size(); i++) {
technicianIndexMap.put(i + 1, technicianIndexlines.get(i));
......@@ -212,8 +207,8 @@ public class DispatchServiceImpl implements DispatchService {
return technicianIndexMap;
}
private static Map<Integer, String> loadCustomerIndex() throws UncheckedIOException, IOException {
List<String> customerIndexlines = IOUtils.readLines(new FileInputStream(new ClassPathResource("data/customerIndex.csv").getFile()), "utf-8");
private static Map<Integer, String> loadCustomerIndex() throws UncheckedIOException, FileNotFoundException {
List<String> customerIndexlines = IOUtils.readLines(new FileInputStream("data/customerIndex.csv"), "utf-8");
Map<Integer, String> customerIndexMap = new HashMap<Integer, String>();// 序号-code
for (int i = 0; i < customerIndexlines.size(); i++) {
customerIndexMap.put(i + 1, customerIndexlines.get(i));
......@@ -223,14 +218,14 @@ public class DispatchServiceImpl implements DispatchService {
private static VehicleRoutingSolution createVehicleRoutingSolution(Map<Integer, String> customerIndexMap,
Map<Integer, String> technicianIndexMap, Map<String, Set<String>> technicianCodeSkillsMap,
Map<String, String> customerCodeSkillMap, Map<String, Map<String, Long>> preferredlocationDistanceMap, Map<String, Integer> customerCodeServiceTimeMap) throws UncheckedIOException, IOException {
Map<String, String> customerCodeSkillMap, Map<String, Map<String, Long>> preferredlocationDistanceMap, Map<String, Integer> customerCodeServiceTimeMap) throws UncheckedIOException, FileNotFoundException {
VehicleRoutingSolution vehicleRoutingSolution = new VehicleRoutingSolution();
// 翻转map
Map<String, Integer> customerIndexMap2 = customerIndexMap.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));
// 初始化距离矩阵
List<String> pathMatrixlines = IOUtils.readLines(new FileInputStream(new ClassPathResource("data/pathMatrix.csv").getFile()), "utf-8");
List<String> pathMatrixlines = IOUtils.readLines(new FileInputStream("data/pathMatrix.csv"), "utf-8");
long[][] pathMatrix = new long[customerIndexMap.keySet().size() + 1][customerIndexMap.keySet().size() + 1];
for (int i = 0; i < pathMatrixlines.size(); i++) {
String line = pathMatrixlines.get(i);
......@@ -255,7 +250,7 @@ public class DispatchServiceImpl implements DispatchService {
// 初始化时间矩阵
// 初始化订单服务窗
List<String> customerWindowslines = IOUtils.readLines(new FileInputStream(new ClassPathResource("data/customerWindows.csv").getFile()), "utf-8");
List<String> customerWindowslines = IOUtils.readLines(new FileInputStream("data/customerWindows.csv"), "utf-8");
Map<Integer, Integer> customerStartMap = new HashMap<Integer, Integer>();
Map<Integer, Integer> customerEndMap = new HashMap<Integer, Integer>();
for (int i = 0; i < customerWindowslines.size(); i++) {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!