Commit 7edb439f by 刘鑫

Merge branch 'develop' of https://gitlab.dituhui.com/bsh/project/project into develop-16542

2 parents c4221824 6e1de546
......@@ -136,7 +136,9 @@ public enum StatusCodeEnum {
RESOURCE_USER_EXISTS_ROLE("025", "角色已绑定用户,请解绑用户后再删除角色!", false),
ORDER_EXISTS("026", "订单已存在", false);
ORDER_EXISTS("026", "订单已存在", false),
ORDER_SKILL_NOT_EXISTS("027", "订单所需技能不存在,请核对!", false);
/**
* 状态码
......
......@@ -23,4 +23,10 @@ public class TestController {
return beanRemoteServiceImpl.allDepartment();
}
@GetMapping("/serviceOrgList")
public Result<?> serviceOrgList() {
return beanRemoteServiceImpl.serviceOrgList();
}
}
......@@ -3,7 +3,6 @@ package com.dituhui.pea.order.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
......@@ -40,7 +39,50 @@ public class OrderServiceDetailResp {
/**
* bean优先级,例如:紧急、正常
*/
private String beanPriority;;
private String beanPriority;
private String name;
private String phone;
private String beanBrand;
private String brand;
private String type;
private String skill;
private String faultDescribe;
private String expectTimeBegin;
private String expectTimeDesc;
private String source;
private String tags;
private String createTime;
private String applyNote;
/**
* 是否是特殊时间段,0否 1是 默认0
*/
private Integer isSpecialTime;
/**
* 是否是cutoff,0否 1是 默认0
*/
private Integer isCutoff ;
/**
* 一家多单id,有则多条订单关联,没有则不是一家多单
*/
private String multipleOrders;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
......
......@@ -76,4 +76,14 @@ public class OrderServiceList {
*/
private Integer isSpecialTime;
/**
* 开始服务时间
*/
private String actualStartTime;
/**
* 结束服务时间
*/
private String actualEndTime;
}
......@@ -63,10 +63,10 @@ public class OrderInfoEntity {
private String skill;
@Column(name = "take_time", nullable = false)
private int takeTime;
private int takeTime = 0;
@Column(name = "is_workshop", nullable = false)
private boolean isWorkshop;
private boolean isWorkshop = false;
@Column(name = "fault_describe", length = 100)
private String faultDescribe;
......@@ -153,10 +153,10 @@ public class OrderInfoEntity {
private LocalDateTime planEndTime;
@Column(name = "arrive_elapsed", nullable = true, columnDefinition = "int(11) default '0'")
private Integer arriveElapsed;
private Integer arriveElapsed = 0;
@Column(name = "arrive_distance", nullable = true, columnDefinition = "int(11) default '0'")
private Integer arriveDistance;
private Integer arriveDistance = 0;
@Column(name = "actual_start_time")
private LocalDateTime actualStartTime;
......
......@@ -5,13 +5,12 @@ import com.dituhui.pea.common.IResult;
/**
* boxi bean组织机构传输接口状态码枚举
* bean doc url https://publink-hz.feishu.cn/wiki/L4d1wwuGGiQcDqkGh3LcDJPon1i
* 集团 CLIQUE
* 大区 REGION
* 分部 BRANCH
* <p>
* 分站 STATION
* 外围 PERIPHERY
* 寄修中心 REPAIR_CENTER
* 集团:CLIQUE
* 大区:REGION
* 分部:BRANCH
* 管理组:MANAGE_GROUP
* 分站:STATION
* 职能:FUNCTION
*/
public enum BeanOrgLevelEnum implements IResult {
......@@ -25,7 +24,9 @@ public enum BeanOrgLevelEnum implements IResult {
PERIPHERY("PERIPHERY", "外围"),
REPAIR_CENTER("REPAIR_CENTER", "寄修中心");
REPAIR_CENTER("REPAIR_CENTER", "寄修中心"),
FUNCTION("FUNCTION", "职能");
private String code;
......
......@@ -227,6 +227,11 @@ public class FendanServiceImpl implements FendanService {
@Override
public Result<OrgTeamInfo> fendanToGroupCapacity(OrderDTO.OrderCreateRequest request, Integer isDate, LocalDate targetDate, LocalTime startTime, LocalTime endTime) {
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:根据经纬度分单获取面
FendanDTO fendanDTO = new FendanDTO();
fendanDTO.setXy(request.getLocation().getLongitude() + "," + request.getLocation().getLatitude());
......@@ -236,7 +241,6 @@ public class FendanServiceImpl implements FendanService {
}
//2:根据服务范围匹配工作队
String peaBrand = fixBrand(request.getBrand());
List<String> blockIds = blockInfos.stream().map(SaasUtils.BlockInfo::getBlockId).distinct().collect(Collectors.toList());
List<MapBlockInfoEntity> mapBlockInBlockIdsList = new ArrayList<>();
//区划所在范围所有工作队
......@@ -296,8 +300,11 @@ public class FendanServiceImpl implements FendanService {
service.setBrand(peaBrand);
service.setProductType(request.getProductType());
service.setServiceType(request.getServiceType());
SkillInfoEntity skillInfo = skillInfoDao.getByBrandAndTypeAndSkill(peaBrand, request.getProductType(), request.getServiceType());
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) :
capacityQueryService.queryCapacityByTeam(orgGroupInfo.getTeamInfos().get(0).getTeamId(), service, targetDate, startTime, endTime);
if (ObjectUtil.isNotNull(capacity) && capacity.getStatus() == 1 && capacity.getMaxDuration() > skillInfo.getTakeTime()) {
......
......@@ -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());
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(StatusCodeEnum.FENDAN_IS_TRANSCEND.getCode())) {
// 处理超派
......
......@@ -72,6 +72,21 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
res.setIsAppointEngineer(order.getIsAppointEngineer());
res.setAppointEngineerCodes(order.getAppointEngineerCodes());
res.setBeanPriority(order.getBeanPriority());
res.setName(order.getName());
res.setPhone(order.getPhone());
res.setBrand(order.getBrand());
res.setType(order.getType());
res.setSkill(order.getSkill());
res.setFaultDescribe(order.getFaultDescribe());
res.setExpectTimeBegin(TimeUtils.IsoLocalDateTime2String(order.getExpectTimeBegin()));
res.setExpectTimeDesc(order.getExpectTimeDesc());
res.setSource(order.getSource());
res.setTags(order.getTags());
res.setCreateTime(TimeUtils.IsoLocalDateTime2String(order.getCreateTime()));
res.setApplyNote(order.getApplyNote());
res.setIsCutoff(order.getIsCutoff());
res.setIsSpecialTime(order.getIsSpecialTime());
res.setMultipleOrders(order.getMultipleOrders());
return Result.success(res);
}
......
package com.dituhui.pea.order.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dituhui.pea.common.BusinessException;
......@@ -156,6 +157,9 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
record.setMultipleOrders(o.getMultipleOrders());
record.setTranscend(o.getTranscend());
record.setIsSpecialTime(o.getIsSpecialTime());
record.setActualStartTime(ObjectUtil.isNull(o.getActualStartTime()) ? "" : TimeUtils.IsoTimestamp2DateTime(o.getActualStartTime()));
record.setActualEndTime(ObjectUtil.isNull(o.getActualStartTime()) ? "" : TimeUtils.IsoTimestamp2DateTime(o.getActualEndTime()));
if (StringUtils.isNotEmpty(o.getMultipleOrders())) {
List<OrderInfoEntity> byMultipleOrders = orderInfoDao.findByMultipleOrdersAndOrderIdNot(o.getMultipleOrders(), o.getOrderId());
List<OrderServiceList> multipleItems = new ArrayList<>();
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!