Commit 2bcf09a0 by wangli

修改,实现workOn, workOff和交通方式时间价格计算

1 parent 65819b46
...@@ -132,8 +132,8 @@ public class EngineerController { ...@@ -132,8 +132,8 @@ public class EngineerController {
Result<?> res = null; Result<?> res = null;
try { try {
res = engineerService.engineerBusinessUpdate( res = engineerService.engineerBusinessUpdate(
req.getEngineerCode(), req.getMaxNum(), req.getMaxMinute(), req.getEngineerCode(), req.getMaxNum(), req.getDeparture(), req.getPriority(),
req.getDeparture(), req.getPriority()); req.getWorkOn(), req.getWorkOff(), req.getTransportMode());
} catch (BusinessException e) { } catch (BusinessException e) {
return Result.failed(e.getMessage()); return Result.failed(e.getMessage());
} }
......
...@@ -20,5 +20,7 @@ public interface EngineerService { ...@@ -20,5 +20,7 @@ public interface EngineerService {
Result<?> getEngineerBusinessDetail(String engineerCode); Result<?> getEngineerBusinessDetail(String engineerCode);
// 技术员业务属性配置修改 // 技术员业务属性配置修改
Result<?> engineerBusinessUpdate(String engineerCode, Integer maxNum, Integer maxMinute, Integer departure, Integer priority); Result<?> engineerBusinessUpdate(
String engineerCode, Integer maxNum, Integer departure, Integer priority,
String workOn, String workOff, String transportMode);
} }
...@@ -18,6 +18,9 @@ import org.springframework.stereotype.Service; ...@@ -18,6 +18,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -202,15 +205,22 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -202,15 +205,22 @@ public class EngineerServiceImpl implements EngineerService {
@Transactional @Transactional
@Override @Override
public Result<?> engineerBusinessUpdate(String engineerCode, Integer maxNum, Integer maxMinute, Integer departure, Integer priority) { public Result<?> engineerBusinessUpdate(String engineerCode, Integer maxNum, Integer departure, Integer priority,
// 技术员业务属性配置修改 String workOn, String workOff, String transportMode) {
// 计算时间差
int minute = this.getMinuteDiff(TimeUtils.time2LocalTime(workOn), TimeUtils.time2LocalTime(workOff));
// 技术员业务属性配置修改
LambdaUpdateWrapper<EngineerBusiness> wrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<EngineerBusiness> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(EngineerBusiness::getEngineerCode, engineerCode); wrapper.eq(EngineerBusiness::getEngineerCode, engineerCode);
wrapper.set(maxNum >= 0, EngineerBusiness::getMaxNum, maxNum); wrapper.set(EngineerBusiness::getMaxNum, maxNum);
wrapper.set(maxMinute >= 0, EngineerBusiness::getMaxMinute, maxMinute);
wrapper.set(EngineerBusiness::getDeparture, departure); wrapper.set(EngineerBusiness::getDeparture, departure);
wrapper.set(EngineerBusiness::getPriority, priority); wrapper.set(EngineerBusiness::getPriority, priority);
wrapper.set(EngineerBusiness::getWorkOn, workOn);
wrapper.set(EngineerBusiness::getWorkOff, workOff);
wrapper.set(EngineerBusiness::getMaxMinute, minute);
wrapper.set(EngineerBusiness::getVehicle, transportMode);
// 更新字段 // 更新字段
engineerBusinessDao.update(null, wrapper); engineerBusinessDao.update(null, wrapper);
...@@ -411,7 +421,7 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -411,7 +421,7 @@ public class EngineerServiceImpl implements EngineerService {
item.setLocation(String.format("%s,%s", b.getX(), b.getY())); item.setLocation(String.format("%s,%s", b.getX(), b.getY()));
item.setWorkOn(b.getWorkOn()); item.setWorkOn(b.getWorkOn());
item.setWorkOff(b.getWorkOff()); item.setWorkOff(b.getWorkOff());
item.setTransportMode(b.getTransportMode()); item.setTransportMode(b.getVehicle());
item.setDeparture(b.getDeparture()); item.setDeparture(b.getDeparture());
item.setMaxMinute(b.getMaxMinute()); item.setMaxMinute(b.getMaxMinute());
item.setMaxNum(b.getMaxNum()); item.setMaxNum(b.getMaxNum());
...@@ -453,4 +463,20 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -453,4 +463,20 @@ public class EngineerServiceImpl implements EngineerService {
return (age <= 0) ? "" : Integer.toString(age); return (age <= 0) ? "" : Integer.toString(age);
} }
private int getMinuteDiff(LocalTime tBegin, LocalTime tEnd) {
int r = tBegin.compareTo(tEnd);
if (r == 0) {
return 0;
}
LocalDateTime dtBegin = LocalDateTime.of(LocalDateTime.now().toLocalDate(), tBegin);
LocalDateTime dtEnd;
if(r < 0) {
dtEnd = LocalDateTime.of(LocalDateTime.now().toLocalDate(), tEnd);
} else {
dtEnd = LocalDateTime.of(LocalDateTime.now().plusDays(1).toLocalDate(), tEnd);
}
Duration duration = Duration.between(dtBegin, dtEnd);
return (int) duration.toMinutes();
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!