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 { ...@@ -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);
/** /**
* 状态码 * 状态码
......
...@@ -23,4 +23,10 @@ public class TestController { ...@@ -23,4 +23,10 @@ public class TestController {
return beanRemoteServiceImpl.allDepartment(); return beanRemoteServiceImpl.allDepartment();
} }
@GetMapping("/serviceOrgList")
public Result<?> serviceOrgList() {
return beanRemoteServiceImpl.serviceOrgList();
}
} }
...@@ -3,7 +3,6 @@ package com.dituhui.pea.order.dto; ...@@ -3,7 +3,6 @@ package com.dituhui.pea.order.dto;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
@Data @Data
...@@ -40,7 +39,50 @@ public class OrderServiceDetailResp { ...@@ -40,7 +39,50 @@ public class OrderServiceDetailResp {
/** /**
* bean优先级,例如:紧急、正常 * 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 @Data
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
......
...@@ -76,4 +76,14 @@ public class OrderServiceList { ...@@ -76,4 +76,14 @@ public class OrderServiceList {
*/ */
private Integer isSpecialTime; private Integer isSpecialTime;
/**
* 开始服务时间
*/
private String actualStartTime;
/**
* 结束服务时间
*/
private String actualEndTime;
} }
...@@ -63,10 +63,10 @@ public class OrderInfoEntity { ...@@ -63,10 +63,10 @@ public class OrderInfoEntity {
private String skill; private String skill;
@Column(name = "take_time", nullable = false) @Column(name = "take_time", nullable = false)
private int takeTime; private int takeTime = 0;
@Column(name = "is_workshop", nullable = false) @Column(name = "is_workshop", nullable = false)
private boolean isWorkshop; private boolean isWorkshop = false;
@Column(name = "fault_describe", length = 100) @Column(name = "fault_describe", length = 100)
private String faultDescribe; private String faultDescribe;
...@@ -153,10 +153,10 @@ public class OrderInfoEntity { ...@@ -153,10 +153,10 @@ public class OrderInfoEntity {
private LocalDateTime planEndTime; private LocalDateTime planEndTime;
@Column(name = "arrive_elapsed", nullable = true, columnDefinition = "int(11) default '0'") @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'") @Column(name = "arrive_distance", nullable = true, columnDefinition = "int(11) default '0'")
private Integer arriveDistance; private Integer arriveDistance = 0;
@Column(name = "actual_start_time") @Column(name = "actual_start_time")
private LocalDateTime actualStartTime; private LocalDateTime actualStartTime;
......
...@@ -5,13 +5,12 @@ import com.dituhui.pea.common.IResult; ...@@ -5,13 +5,12 @@ import com.dituhui.pea.common.IResult;
/** /**
* boxi bean组织机构传输接口状态码枚举 * boxi bean组织机构传输接口状态码枚举
* bean doc url https://publink-hz.feishu.cn/wiki/L4d1wwuGGiQcDqkGh3LcDJPon1i * bean doc url https://publink-hz.feishu.cn/wiki/L4d1wwuGGiQcDqkGh3LcDJPon1i
* 集团 CLIQUE * 集团:CLIQUE
* 大区 REGION * 大区:REGION
* 分部 BRANCH * 分部:BRANCH
* <p> * 管理组:MANAGE_GROUP
* 分站 STATION * 分站:STATION
* 外围 PERIPHERY * 职能:FUNCTION
* 寄修中心 REPAIR_CENTER
*/ */
public enum BeanOrgLevelEnum implements IResult { public enum BeanOrgLevelEnum implements IResult {
...@@ -25,7 +24,9 @@ public enum BeanOrgLevelEnum implements IResult { ...@@ -25,7 +24,9 @@ public enum BeanOrgLevelEnum implements IResult {
PERIPHERY("PERIPHERY", "外围"), PERIPHERY("PERIPHERY", "外围"),
REPAIR_CENTER("REPAIR_CENTER", "寄修中心"); REPAIR_CENTER("REPAIR_CENTER", "寄修中心"),
FUNCTION("FUNCTION", "职能");
private String code; private String code;
......
...@@ -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())) {
// 处理超派 // 处理超派
......
...@@ -72,6 +72,21 @@ public class OrderServiceDetailImpl implements OrderServiceDetail { ...@@ -72,6 +72,21 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
res.setIsAppointEngineer(order.getIsAppointEngineer()); res.setIsAppointEngineer(order.getIsAppointEngineer());
res.setAppointEngineerCodes(order.getAppointEngineerCodes()); res.setAppointEngineerCodes(order.getAppointEngineerCodes());
res.setBeanPriority(order.getBeanPriority()); 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); return Result.success(res);
} }
......
package com.dituhui.pea.order.service.impl; 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.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dituhui.pea.common.BusinessException; import com.dituhui.pea.common.BusinessException;
...@@ -156,6 +157,9 @@ public class OrderServiceListServiceImpl implements OrderServiceListService { ...@@ -156,6 +157,9 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
record.setMultipleOrders(o.getMultipleOrders()); record.setMultipleOrders(o.getMultipleOrders());
record.setTranscend(o.getTranscend()); record.setTranscend(o.getTranscend());
record.setIsSpecialTime(o.getIsSpecialTime()); 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())) { if (StringUtils.isNotEmpty(o.getMultipleOrders())) {
List<OrderInfoEntity> byMultipleOrders = orderInfoDao.findByMultipleOrdersAndOrderIdNot(o.getMultipleOrders(), o.getOrderId()); List<OrderInfoEntity> byMultipleOrders = orderInfoDao.findByMultipleOrdersAndOrderIdNot(o.getMultipleOrders(), o.getOrderId());
List<OrderServiceList> multipleItems = new ArrayList<>(); 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!