|
@@ -83,16 +83,16 @@ public class KwfAutoDispatchService {
|
|
|
private KwfTruckDispatchCoefficient initAutoDispatchCoefficient(Long entId) {
|
|
private KwfTruckDispatchCoefficient initAutoDispatchCoefficient(Long entId) {
|
|
|
KwfTruckDispatchCoefficient dispatchCoefficient = new KwfTruckDispatchCoefficient();
|
|
KwfTruckDispatchCoefficient dispatchCoefficient = new KwfTruckDispatchCoefficient();
|
|
|
dispatchCoefficient.setEntId(entId);
|
|
dispatchCoefficient.setEntId(entId);
|
|
|
- dispatchCoefficient.setVehicleWorkHours(new BigDecimal("10.00"));
|
|
|
|
|
- dispatchCoefficient.setVehicleLoadingHours(new BigDecimal("1.00"));
|
|
|
|
|
- dispatchCoefficient.setVehicleUnloadingHours(new BigDecimal("1.00"));
|
|
|
|
|
- dispatchCoefficient.setDriverTimeoutLimit(new BigDecimal("2.00"));
|
|
|
|
|
- dispatchCoefficient.setVehicleAvgLoad(new BigDecimal("26.00"));
|
|
|
|
|
- dispatchCoefficient.setVehicleAvgSpeed(new BigDecimal("50.00"));
|
|
|
|
|
|
|
+ dispatchCoefficient.setVehicleWorkHours(10);
|
|
|
|
|
+ dispatchCoefficient.setVehicleLoadingHours(1);
|
|
|
|
|
+ dispatchCoefficient.setVehicleUnloadingHours(1);
|
|
|
|
|
+ dispatchCoefficient.setDriverTimeoutLimit(2);
|
|
|
|
|
+ dispatchCoefficient.setVehicleAvgLoad(26);
|
|
|
|
|
+ dispatchCoefficient.setVehicleAvgSpeed(50);
|
|
|
dispatchCoefficient.setVehicleMaxTasks(3);
|
|
dispatchCoefficient.setVehicleMaxTasks(3);
|
|
|
- dispatchCoefficient.setDriverOrderLimit(new BigDecimal("10.00"));
|
|
|
|
|
|
|
+ dispatchCoefficient.setDriverOrderLimit(10);
|
|
|
dispatchCoefficient.setYardVehicleCapacity(70);
|
|
dispatchCoefficient.setYardVehicleCapacity(70);
|
|
|
- dispatchCoefficient.setMaxRatio(new BigDecimal("50.00"));
|
|
|
|
|
|
|
+ dispatchCoefficient.setMaxRatio(50);
|
|
|
dispatchCoefficient.setBufferCoefficient(new BigDecimal("1.20"));
|
|
dispatchCoefficient.setBufferCoefficient(new BigDecimal("1.20"));
|
|
|
dispatchCoefficient.setCreateUser(LoginUserHolder.getUserId());
|
|
dispatchCoefficient.setCreateUser(LoginUserHolder.getUserId());
|
|
|
dispatchCoefficient.setUpdateUser(LoginUserHolder.getUserId());
|
|
dispatchCoefficient.setUpdateUser(LoginUserHolder.getUserId());
|
|
@@ -221,7 +221,6 @@ public class KwfAutoDispatchService {
|
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "当前登录用户未关联企业ID,无法查询规则");
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "当前登录用户未关联企业ID,无法查询规则");
|
|
|
}
|
|
}
|
|
|
KwfDriverConductRules driverConductRules = driverConductRulesRepository.getOne(Wrappers.<KwfDriverConductRules>lambdaQuery()
|
|
KwfDriverConductRules driverConductRules = driverConductRulesRepository.getOne(Wrappers.<KwfDriverConductRules>lambdaQuery()
|
|
|
- .eq(KwfDriverConductRules::getDelFlag, 0)
|
|
|
|
|
.eq(KwfDriverConductRules::getEntId, LoginUserHolder.getEntId()));
|
|
.eq(KwfDriverConductRules::getEntId, LoginUserHolder.getEntId()));
|
|
|
//无数据则初始化
|
|
//无数据则初始化
|
|
|
if (driverConductRules == null && request.getIsInit()) {
|
|
if (driverConductRules == null && request.getIsInit()) {
|
|
@@ -239,14 +238,20 @@ public class KwfAutoDispatchService {
|
|
|
private KwfDriverConductRules initDriverConductRules(Long entId) {
|
|
private KwfDriverConductRules initDriverConductRules(Long entId) {
|
|
|
KwfDriverConductRules rules = new KwfDriverConductRules();
|
|
KwfDriverConductRules rules = new KwfDriverConductRules();
|
|
|
rules.setEntId(entId);
|
|
rules.setEntId(entId);
|
|
|
- rules.setNotOnTimeArrive(2);
|
|
|
|
|
- rules.setIllegalCancelOrder(2);
|
|
|
|
|
- rules.setUnloadSeriousTimeout(2);
|
|
|
|
|
- rules.setFakeUnload(2);
|
|
|
|
|
|
|
+ rules.setUnloadSeriousTimeout(5);
|
|
|
|
|
+ rules.setUnloadSeriousTimeoutMultiple(new BigDecimal("2.00"));
|
|
|
rules.setDocumentErrorMissing(2);
|
|
rules.setDocumentErrorMissing(2);
|
|
|
- rules.setContinuousOnTimeArrive(2);
|
|
|
|
|
- rules.setContinuousOnTimeUnload(2);
|
|
|
|
|
- rules.setContinuousAccurateUnload(2);
|
|
|
|
|
|
|
+ rules.setNotOnTimeArrive(2);
|
|
|
|
|
+ rules.setFakeUnload(5);
|
|
|
|
|
+ rules.setFakeUnloadDistance(5);
|
|
|
|
|
+ rules.setIllegalCancelOrder(1);
|
|
|
|
|
+ rules.setIllegalCancelOrderMinutes(60);
|
|
|
|
|
+ rules.setContinuousOnTimeArrive(5);
|
|
|
|
|
+ rules.setContinuousOnTimeArriveTimes(10);
|
|
|
|
|
+ rules.setContinuousOnTimeUnload(5);
|
|
|
|
|
+ rules.setContinuousOnTimeUnloadTimes(10);
|
|
|
|
|
+ rules.setContinuousAccurateUnload(5);
|
|
|
|
|
+ rules.setContinuousAccurateUnloadTimes(10);
|
|
|
rules.setCreateUser(LoginUserHolder.getUserId());
|
|
rules.setCreateUser(LoginUserHolder.getUserId());
|
|
|
rules.setUpdateUser(LoginUserHolder.getUserId());
|
|
rules.setUpdateUser(LoginUserHolder.getUserId());
|
|
|
|
|
|
|
@@ -275,15 +280,22 @@ public class KwfAutoDispatchService {
|
|
|
KwfDriverConductRules newDriverConductRules = new KwfDriverConductRules();
|
|
KwfDriverConductRules newDriverConductRules = new KwfDriverConductRules();
|
|
|
BeanUtils.copyProperties(oldDriverConductRules, newDriverConductRules);
|
|
BeanUtils.copyProperties(oldDriverConductRules, newDriverConductRules);
|
|
|
|
|
|
|
|
- newDriverConductRules.setNotOnTimeArrive(request.getNotOnTimeArrive());
|
|
|
|
|
- newDriverConductRules.setIllegalCancelOrder(request.getIllegalCancelOrder());
|
|
|
|
|
newDriverConductRules.setUnloadSeriousTimeout(request.getUnloadSeriousTimeout());
|
|
newDriverConductRules.setUnloadSeriousTimeout(request.getUnloadSeriousTimeout());
|
|
|
- newDriverConductRules.setFakeUnload(request.getFakeUnload());
|
|
|
|
|
|
|
+ newDriverConductRules.setUnloadSeriousTimeoutMultiple(request.getUnloadSeriousTimeoutMultiple());
|
|
|
newDriverConductRules.setDocumentErrorMissing(request.getDocumentErrorMissing());
|
|
newDriverConductRules.setDocumentErrorMissing(request.getDocumentErrorMissing());
|
|
|
|
|
+ newDriverConductRules.setNotOnTimeArrive(request.getNotOnTimeArrive());
|
|
|
|
|
+ newDriverConductRules.setFakeUnload(request.getFakeUnload());
|
|
|
|
|
+ newDriverConductRules.setFakeUnloadDistance(request.getFakeUnloadDistance());
|
|
|
|
|
+ newDriverConductRules.setIllegalCancelOrder(request.getIllegalCancelOrder());
|
|
|
|
|
+ newDriverConductRules.setIllegalCancelOrderMinutes(request.getIllegalCancelOrderMinutes());
|
|
|
newDriverConductRules.setContinuousOnTimeArrive(request.getContinuousOnTimeArrive());
|
|
newDriverConductRules.setContinuousOnTimeArrive(request.getContinuousOnTimeArrive());
|
|
|
|
|
+ newDriverConductRules.setContinuousOnTimeArriveTimes(request.getContinuousOnTimeArriveTimes());
|
|
|
newDriverConductRules.setContinuousOnTimeUnload(request.getContinuousOnTimeUnload());
|
|
newDriverConductRules.setContinuousOnTimeUnload(request.getContinuousOnTimeUnload());
|
|
|
|
|
+ newDriverConductRules.setContinuousOnTimeUnloadTimes(request.getContinuousOnTimeUnloadTimes());
|
|
|
newDriverConductRules.setContinuousAccurateUnload(request.getContinuousAccurateUnload());
|
|
newDriverConductRules.setContinuousAccurateUnload(request.getContinuousAccurateUnload());
|
|
|
|
|
+ newDriverConductRules.setContinuousAccurateUnloadTimes(request.getContinuousAccurateUnloadTimes());
|
|
|
newDriverConductRules.setUpdateUser(LoginUserHolder.getUserId());
|
|
newDriverConductRules.setUpdateUser(LoginUserHolder.getUserId());
|
|
|
|
|
+
|
|
|
boolean updateResult = driverConductRulesRepository.updateById(newDriverConductRules);
|
|
boolean updateResult = driverConductRulesRepository.updateById(newDriverConductRules);
|
|
|
if (!updateResult) {
|
|
if (!updateResult) {
|
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.DATA_UPDATE_FAIL, "更新司机行为规则失败");
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.DATA_UPDATE_FAIL, "更新司机行为规则失败");
|
|
@@ -321,14 +333,20 @@ public class KwfAutoDispatchService {
|
|
|
}
|
|
}
|
|
|
List<String> changeItems = new ArrayList<>();
|
|
List<String> changeItems = new ArrayList<>();
|
|
|
// 对比所有字段
|
|
// 对比所有字段
|
|
|
|
|
+ compareAndAddItem(changeItems, "单趟严重超时", oldRule.getUnloadSeriousTimeout(), request.getUnloadSeriousTimeout());
|
|
|
|
|
+ compareAndAddItem(changeItems, "单趟严重超时倍数", oldRule.getUnloadSeriousTimeoutMultiple(), request.getUnloadSeriousTimeoutMultiple());
|
|
|
|
|
+ compareAndAddItem(changeItems, "单据错误/缺失", oldRule.getDocumentErrorMissing(), request.getDocumentErrorMissing());
|
|
|
compareAndAddItem(changeItems, "未按时到场", oldRule.getNotOnTimeArrive(), request.getNotOnTimeArrive());
|
|
compareAndAddItem(changeItems, "未按时到场", oldRule.getNotOnTimeArrive(), request.getNotOnTimeArrive());
|
|
|
- compareAndAddItem(changeItems, "违规取消运单", oldRule.getIllegalCancelOrder(), request.getIllegalCancelOrder());
|
|
|
|
|
- compareAndAddItem(changeItems, "卸货严重超时", oldRule.getUnloadSeriousTimeout(), request.getUnloadSeriousTimeout());
|
|
|
|
|
compareAndAddItem(changeItems, "虚假卸货", oldRule.getFakeUnload(), request.getFakeUnload());
|
|
compareAndAddItem(changeItems, "虚假卸货", oldRule.getFakeUnload(), request.getFakeUnload());
|
|
|
- compareAndAddItem(changeItems, "单据错误/缺失", oldRule.getDocumentErrorMissing(), request.getDocumentErrorMissing());
|
|
|
|
|
|
|
+ compareAndAddItem(changeItems, "虚假卸货偏差距离", oldRule.getFakeUnloadDistance(), request.getFakeUnloadDistance());
|
|
|
|
|
+ compareAndAddItem(changeItems, "违规取消运单", oldRule.getIllegalCancelOrder(), request.getIllegalCancelOrder());
|
|
|
|
|
+ compareAndAddItem(changeItems, "违规取消运单分钟数", oldRule.getIllegalCancelOrderMinutes(), request.getIllegalCancelOrderMinutes());
|
|
|
compareAndAddItem(changeItems, "连续按时到场", oldRule.getContinuousOnTimeArrive(), request.getContinuousOnTimeArrive());
|
|
compareAndAddItem(changeItems, "连续按时到场", oldRule.getContinuousOnTimeArrive(), request.getContinuousOnTimeArrive());
|
|
|
|
|
+ compareAndAddItem(changeItems, "连续按时到场次数", oldRule.getContinuousOnTimeArriveTimes(), request.getContinuousOnTimeArriveTimes());
|
|
|
compareAndAddItem(changeItems, "连续准时卸货", oldRule.getContinuousOnTimeUnload(), request.getContinuousOnTimeUnload());
|
|
compareAndAddItem(changeItems, "连续准时卸货", oldRule.getContinuousOnTimeUnload(), request.getContinuousOnTimeUnload());
|
|
|
|
|
+ compareAndAddItem(changeItems, "连续准时卸货次数", oldRule.getContinuousOnTimeUnloadTimes(), request.getContinuousOnTimeUnloadTimes());
|
|
|
compareAndAddItem(changeItems, "连续准确填写卸货信息", oldRule.getContinuousAccurateUnload(), request.getContinuousAccurateUnload());
|
|
compareAndAddItem(changeItems, "连续准确填写卸货信息", oldRule.getContinuousAccurateUnload(), request.getContinuousAccurateUnload());
|
|
|
|
|
+ compareAndAddItem(changeItems, "连续准确填写卸货信息次数", oldRule.getContinuousAccurateUnloadTimes(), request.getContinuousAccurateUnloadTimes());
|
|
|
|
|
|
|
|
if (changeItems.isEmpty()) {
|
|
if (changeItems.isEmpty()) {
|
|
|
return "";
|
|
return "";
|
|
@@ -345,7 +363,7 @@ public class KwfAutoDispatchService {
|
|
|
* @param newValue 新值
|
|
* @param newValue 新值
|
|
|
*/
|
|
*/
|
|
|
private void compareAndAddItem(List<String> items, String fieldName, Integer oldValue, Integer newValue) {
|
|
private void compareAndAddItem(List<String> items, String fieldName, Integer oldValue, Integer newValue) {
|
|
|
- // 仅当值不同时添加文案
|
|
|
|
|
|
|
+ // 仅当值不同时添加文案 //TODO donglang BigDecimal
|
|
|
if (Objects.equals(oldValue, newValue)) {
|
|
if (Objects.equals(oldValue, newValue)) {
|
|
|
items.add(String.format("%s由【%s】设置为【%s】", fieldName, oldValue, newValue));
|
|
items.add(String.format("%s由【%s】设置为【%s】", fieldName, oldValue, newValue));
|
|
|
}
|
|
}
|