Commit 0cdc8d47 by huangjinxin

fix:增加技能校验

1 parent f241e2af
...@@ -136,7 +136,9 @@ public enum StatusCodeEnum { ...@@ -136,7 +136,9 @@ public enum StatusCodeEnum {
RESOURCE_USER_EXISTS_ROLE("025", "角色已绑定用户,请解绑用户后再删除角色!", false), RESOURCE_USER_EXISTS_ROLE("025", "角色已绑定用户,请解绑用户后再删除角色!", false),
ORDER_EXISTS("026", "订单已存在", false); ORDER_EXISTS("026", "订单已存在", false),
ORDER_SKILL_NOT_EXISTS("027", "订单所需技能不存在,请核对!", false);
/** /**
* 状态码 * 状态码
......
...@@ -227,6 +227,11 @@ public class FendanServiceImpl implements FendanService { ...@@ -227,6 +227,11 @@ public class FendanServiceImpl implements FendanService {
@Override @Override
public Result<OrgTeamInfo> fendanToGroupCapacity(OrderDTO.OrderCreateRequest request, Integer isDate, LocalDate targetDate, LocalTime startTime, LocalTime endTime) { public Result<OrgTeamInfo> fendanToGroupCapacity(OrderDTO.OrderCreateRequest request, Integer isDate, LocalDate targetDate, LocalTime startTime, LocalTime endTime) {
List<OrgGroupInfo> orgGroupTeamInfos = new ArrayList<>(); List<OrgGroupInfo> orgGroupTeamInfos = new ArrayList<>();
String peaBrand = fixBrand(request.getBrand());
SkillInfoEntity skillInfo = skillInfoDao.getByBrandAndTypeAndSkill(peaBrand, request.getProductType(), request.getServiceType());
if (ObjectUtil.isNull(skillInfo)) {
return Result.failed(StatusCodeEnum.ORDER_SKILL_NOT_EXISTS);
}
//1:根据经纬度分单获取面 //1:根据经纬度分单获取面
FendanDTO fendanDTO = new FendanDTO(); FendanDTO fendanDTO = new FendanDTO();
fendanDTO.setXy(request.getLocation().getLongitude() + "," + request.getLocation().getLatitude()); fendanDTO.setXy(request.getLocation().getLongitude() + "," + request.getLocation().getLatitude());
...@@ -236,7 +241,6 @@ public class FendanServiceImpl implements FendanService { ...@@ -236,7 +241,6 @@ public class FendanServiceImpl implements FendanService {
} }
//2:根据服务范围匹配工作队 //2:根据服务范围匹配工作队
String peaBrand = fixBrand(request.getBrand());
List<String> blockIds = blockInfos.stream().map(SaasUtils.BlockInfo::getBlockId).distinct().collect(Collectors.toList()); List<String> blockIds = blockInfos.stream().map(SaasUtils.BlockInfo::getBlockId).distinct().collect(Collectors.toList());
List<MapBlockInfoEntity> mapBlockInBlockIdsList = new ArrayList<>(); List<MapBlockInfoEntity> mapBlockInBlockIdsList = new ArrayList<>();
//区划所在范围所有工作队 //区划所在范围所有工作队
...@@ -296,8 +300,11 @@ public class FendanServiceImpl implements FendanService { ...@@ -296,8 +300,11 @@ public class FendanServiceImpl implements FendanService {
service.setBrand(peaBrand); service.setBrand(peaBrand);
service.setProductType(request.getProductType()); service.setProductType(request.getProductType());
service.setServiceType(request.getServiceType()); service.setServiceType(request.getServiceType());
SkillInfoEntity skillInfo = skillInfoDao.getByBrandAndTypeAndSkill(peaBrand, request.getProductType(), request.getServiceType());
for (OrgGroupInfo orgGroupInfo : orgGroupTeamInfos) { for (OrgGroupInfo orgGroupInfo : orgGroupTeamInfos) {
//网点无限容量直接返回
if (orgGroupInfo.getCategory() == 2) {
return Result.success(orgGroupInfo.getTeamInfos().get(0));
}
CapacityQueryDTO.Segment capacity = isDate == 1 ? capacityQueryService.queryCapacityByTeam(orgGroupInfo.getTeamInfos().get(0).getTeamId(), service, targetDate) : CapacityQueryDTO.Segment capacity = isDate == 1 ? capacityQueryService.queryCapacityByTeam(orgGroupInfo.getTeamInfos().get(0).getTeamId(), service, targetDate) :
capacityQueryService.queryCapacityByTeam(orgGroupInfo.getTeamInfos().get(0).getTeamId(), service, targetDate, startTime, endTime); capacityQueryService.queryCapacityByTeam(orgGroupInfo.getTeamInfos().get(0).getTeamId(), service, targetDate, startTime, endTime);
if (ObjectUtil.isNotNull(capacity) && capacity.getStatus() == 1 && capacity.getMaxDuration() > skillInfo.getTakeTime()) { if (ObjectUtil.isNotNull(capacity) && capacity.getStatus() == 1 && capacity.getMaxDuration() > skillInfo.getTakeTime()) {
......
...@@ -159,6 +159,9 @@ public class OrderCreateServiceImpl implements OrderCreateService { ...@@ -159,6 +159,9 @@ public class OrderCreateServiceImpl implements OrderCreateService {
} }
// 分单处理 // 分单处理
Result<OrgTeamInfo> fendanResult = fendanService.fendanToGroupCapacity(req, 2, entity.getExpectTimeBegin().toLocalDate(), entity.getExpectTimeBegin().toLocalTime(), entity.getExpectTimeEnd().toLocalTime()); Result<OrgTeamInfo> fendanResult = fendanService.fendanToGroupCapacity(req, 2, entity.getExpectTimeBegin().toLocalDate(), entity.getExpectTimeBegin().toLocalTime(), entity.getExpectTimeEnd().toLocalTime());
if (fendanResult.getCode().equals(StatusCodeEnum.ORDER_SKILL_NOT_EXISTS.getCode())) {
return fendanResult;
}
if (!fendanResult.getCode().equals(ResultEnum.SUCCESS.getCode()) || ObjectUtil.isNull(fendanResult.getResult())) { if (!fendanResult.getCode().equals(ResultEnum.SUCCESS.getCode()) || ObjectUtil.isNull(fendanResult.getResult())) {
if (fendanResult.getCode().equals(StatusCodeEnum.FENDAN_IS_TRANSCEND.getCode())) { if (fendanResult.getCode().equals(StatusCodeEnum.FENDAN_IS_TRANSCEND.getCode())) {
// 处理超派 // 处理超派
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!