Commit 808f6e4c by 刘鑫

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

2 parents 31f5e265 b40829de
...@@ -32,17 +32,17 @@ public class OrderReschedulingReason { ...@@ -32,17 +32,17 @@ public class OrderReschedulingReason {
put("服务政策/流程相关", new ArrayList<>() { put("服务政策/流程相关", new ArrayList<>() {
{ {
add("超派"); add("超派");
add("重复单(工程师发起申请按钮,由CC校验取消)"); // add("重复单(工程师发起申请按钮,由CC校验取消)");
add("服务指派不准确"); add("服务指派不准确");
add("转入车间服务流程"); add("转入车间服务流程");
add("退换机方案沟通中"); add("退换机方案沟通中");
add("不接受退换机政策"); // add("不接受退换机政策");
add("用户考虑费用问题"); add("用户考虑费用问题");
add("用户不认可收费标准"); // add("用户不认可收费标准");
add("用户考虑安装/维修方案"); add("用户考虑安装/维修方案");
add("用户不接受维修标准"); // add("用户不接受维修标准");
add("用户考虑软性故障相关解释"); add("用户考虑软性故障相关解释");
add("没有相关安装/维修操作指导(不提供此服务)"); // add("没有相关安装/维修操作指导(不提供此服务)");
} }
}); });
put("安装、维修环境(极端天气)", new ArrayList<>() { put("安装、维修环境(极端天气)", new ArrayList<>() {
...@@ -73,15 +73,15 @@ public class OrderReschedulingReason { ...@@ -73,15 +73,15 @@ public class OrderReschedulingReason {
put("用户相关", new ArrayList<>() { put("用户相关", new ArrayList<>() {
{ {
add("用户不接电话且已短信通知用户(改约3次以内)"); add("用户不接电话且已短信通知用户(改约3次以内)");
add("3天6次未联系上用户"); // add("3天6次未联系上用户");
add("无法满足消费者夜间上门需求(非加单)"); add("无法满足消费者夜间上门需求(非加单)");
add("用户期望的服务时间与其他用户冲突"); add("用户期望的服务时间与其他用户冲突");
add("上门前得知外部人员已服务"); // add("上门前得知外部人员已服务");
add("用户要求自行来分部购买配/附件(仅仓管可选)"); // add("用户要求自行来分部购买配/附件(仅仓管可选)");
add("机器已退/换,不再需要上门服务(仅行政/用户/CC可选)"); // add("机器已退/换,不再需要上门服务(仅行政/用户/CC可选)");
add("非BSH产品"); // add("非BSH产品");
add("用户主动提出往后改约(必须短信通知用户)"); add("用户主动提出往后改约(必须短信通知用户)");
add("机器故障已消除(仅行政/用户/CC可选)"); // add("机器故障已消除(仅行政/用户/CC可选)");
add("消费者希望提前上门"); add("消费者希望提前上门");
} }
}); });
......
...@@ -3,7 +3,7 @@ package com.dituhui.pea.order.dto; ...@@ -3,7 +3,7 @@ package com.dituhui.pea.order.dto;
import com.dituhui.pea.order.dto.param.Location; import com.dituhui.pea.order.dto.param.Location;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
...@@ -12,6 +12,10 @@ public class OrderReschedule { ...@@ -12,6 +12,10 @@ public class OrderReschedule {
private String expectBegin; private String expectBegin;
private String expectEnd; private String expectEnd;
private String expectDesc; private String expectDesc;
/**
* 操作发生时间
*/
private Date happendDate = new Date();
/** /**
* 操作员 * 操作员
......
...@@ -8,7 +8,9 @@ import com.dituhui.pea.order.entity.OrderInfoEntity; ...@@ -8,7 +8,9 @@ import com.dituhui.pea.order.entity.OrderInfoEntity;
import com.dituhui.pea.order.entity.OrgTeamEntity; import com.dituhui.pea.order.entity.OrgTeamEntity;
import com.dituhui.pea.order.entity.SkillInfoEntity; import com.dituhui.pea.order.entity.SkillInfoEntity;
import java.text.ParseException;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -68,6 +70,17 @@ public interface OrderInfoService { ...@@ -68,6 +70,17 @@ public interface OrderInfoService {
* @param isSub 是否指派辅助指派工程师 * @param isSub 是否指派辅助指派工程师
* @return * @return
*/ */
public Result<OrderInfoEntity> insterEngineerOrders(List<OrderInfoEntity> engineerOrders, OrderInfoEntity insertOrder, SkillInfoEntity skillInfo, OrgTeamEntity orgTeam, EngineerInfoEntity engineer, Boolean isSub); Result<OrderInfoEntity> insterEngineerOrders(List<OrderInfoEntity> engineerOrders, OrderInfoEntity insertOrder, SkillInfoEntity skillInfo, OrgTeamEntity orgTeam, EngineerInfoEntity engineer, Boolean isSub);
/**
* 派工消息通知bean
*
* @param source 原订单
* @param target 改动后订单
* @param happened 变动发生时间
* @param reason 改约原因
* @param operator 操作人
* @return
*/
Boolean rescheduled(OrderInfoEntity source, OrderInfoEntity target, Date happened, String reason, String operator);
} }
...@@ -22,6 +22,7 @@ import com.google.common.collect.Sets; ...@@ -22,6 +22,7 @@ import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -359,6 +360,8 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -359,6 +360,8 @@ public class DispatchServiceImpl implements DispatchService {
OrgTeamEntity byTeamId = orgTeamDao.getByTeamId(orgTeamEngineers.get(0).getTeamId()); OrgTeamEntity byTeamId = orgTeamDao.getByTeamId(orgTeamEngineers.get(0).getTeamId());
for (OrderInfoEntity entity : orders) { for (OrderInfoEntity entity : orders) {
final OrderInfoEntity sourceOrder = new OrderInfoEntity();
BeanUtils.copyProperties(entity, sourceOrder);
if (StringUtils.isNotBlank(entity.getEngineerCode()) && entity.getEngineerCode().equals(engineer.getEngineerCode())) { if (StringUtils.isNotBlank(entity.getEngineerCode()) && entity.getEngineerCode().equals(engineer.getEngineerCode())) {
return Result.failed(String.format("订单已指派给技术员[%s], 不必重复指派给同一个技术员", engineer.getName())); return Result.failed(String.format("订单已指派给技术员[%s], 不必重复指派给同一个技术员", engineer.getName()));
} }
...@@ -394,6 +397,13 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -394,6 +397,13 @@ public class DispatchServiceImpl implements DispatchService {
entity.setOrgBranchId(byTeamId.getBranchId()); entity.setOrgBranchId(byTeamId.getBranchId());
entity.setOrgClusterId(byTeamId.getClusterId()); entity.setOrgClusterId(byTeamId.getClusterId());
} }
//回调改约
Boolean boo = orderInfoService.rescheduled(sourceOrder, entity, new Date(), "", "PEA");
log.info("[orderReschedule] orderId:{}, 通知bean结果: {}", sourceOrder.getOrderId(), boo);
if (!boo) {
throw new BusinessException("服务工单变更结果通知BEAN失败");
}
orderInfoDao.save(entity); orderInfoDao.save(entity);
//记录流程 //记录流程
commonService.addOrderEvent(entity.getOrderId(), "", "PEA", "PEA", OrderEventEnum.reassignment.getEvent(), commonService.addOrderEvent(entity.getOrderId(), "", "PEA", "PEA", OrderEventEnum.reassignment.getEvent(),
......
...@@ -54,6 +54,7 @@ import lombok.Setter; ...@@ -54,6 +54,7 @@ import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -66,16 +67,7 @@ import javax.persistence.criteria.Root; ...@@ -66,16 +67,7 @@ import javax.persistence.criteria.Root;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -218,7 +210,8 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -218,7 +210,8 @@ public class OrderAssignImpl implements OrderAssign {
if (entity == null) { if (entity == null) {
return Result.failed("订单不存在"); return Result.failed("订单不存在");
} }
final OrderInfoEntity sourceOrder = new OrderInfoEntity();
BeanUtils.copyProperties(entity, sourceOrder);
EngineerInfoEntity engineer = engineerInfoDao.getByEngineerCode(req.getEngineerCode()); EngineerInfoEntity engineer = engineerInfoDao.getByEngineerCode(req.getEngineerCode());
List<OrgTeamEngineerEntity> orgTeamEngineers = orgTeamEngineerDao.findByEngineerCode(engineer.getEngineerCode()); List<OrgTeamEngineerEntity> orgTeamEngineers = orgTeamEngineerDao.findByEngineerCode(engineer.getEngineerCode());
...@@ -256,6 +249,12 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -256,6 +249,12 @@ public class OrderAssignImpl implements OrderAssign {
entity.setOrgBranchId(byTeamId.getBranchId()); entity.setOrgBranchId(byTeamId.getBranchId());
entity.setOrgClusterId(byTeamId.getClusterId()); entity.setOrgClusterId(byTeamId.getClusterId());
} }
//回调改约
Boolean boo = orderInfoService.rescheduled(sourceOrder, entity, new Date(), "", "PEA");
log.info("[orderReschedule] orderId:{}, 通知bean结果: {}", sourceOrder.getOrderId(), boo);
if (!boo) {
throw new BusinessException("服务工单变更结果通知BEAN失败");
}
orderInfoDao.save(entity); orderInfoDao.save(entity);
// 工单变更登记 // 工单变更登记
commonService.addOrderEvent(entity.getOrderId(), "", "BEAN", "BEAN", OrderEventEnum.reassignment.getEvent(), commonService.addOrderEvent(entity.getOrderId(), "", "BEAN", "BEAN", OrderEventEnum.reassignment.getEvent(),
......
...@@ -25,6 +25,7 @@ import com.dituhui.pea.order.entity.*; ...@@ -25,6 +25,7 @@ import com.dituhui.pea.order.entity.*;
import com.dituhui.pea.order.enums.*; import com.dituhui.pea.order.enums.*;
import com.dituhui.pea.order.feign.bean.OrderCancel; import com.dituhui.pea.order.feign.bean.OrderCancel;
import com.dituhui.pea.order.feign.bean.Reason; import com.dituhui.pea.order.feign.bean.Reason;
import com.dituhui.pea.order.feign.bean.Rescheduled;
import com.dituhui.pea.order.service.*; import com.dituhui.pea.order.service.*;
import com.dituhui.pea.order.utils.CommonUtil; import com.dituhui.pea.order.utils.CommonUtil;
import com.dituhui.pea.order.utils.OrderUtil; import com.dituhui.pea.order.utils.OrderUtil;
...@@ -37,6 +38,7 @@ import lombok.RequiredArgsConstructor; ...@@ -37,6 +38,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -46,10 +48,7 @@ import java.math.RoundingMode; ...@@ -46,10 +48,7 @@ import java.math.RoundingMode;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -97,6 +96,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -97,6 +96,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
private EngineerBusinessDao engineerBusinessDao; private EngineerBusinessDao engineerBusinessDao;
private final BeanRemoteServiceImpl beanRemoteService; private final BeanRemoteServiceImpl beanRemoteService;
private final EngineerInfoDao engineerInfoDao;
/** /**
...@@ -117,14 +117,12 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -117,14 +117,12 @@ public class OrderInfoServiceImpl implements OrderInfoService {
return Result.success(null); return Result.success(null);
} }
//排除自己 //排除自己
List<String> multipleOrdersList = infoList.stream().filter(e -> !e.getOrderId().equals(orderId)) List<String> multipleOrdersList = infoList.stream().filter(e -> !e.getOrderId().equals(orderId)).map(OrderInfoEntity::getMultipleOrders).distinct().collect(Collectors.toList());
.map(OrderInfoEntity::getMultipleOrders).distinct().collect(Collectors.toList());
if (CollectionUtils.isEmpty(multipleOrdersList)) { if (CollectionUtils.isEmpty(multipleOrdersList)) {
return Result.success(null); return Result.success(null);
} }
//查看是否已存在一家多单id存在则返回 //查看是否已存在一家多单id存在则返回
List<String> multipleOrdersFilterList = infoList.stream().filter(e -> StringUtils.isNotEmpty(e.getMultipleOrders())) List<String> multipleOrdersFilterList = infoList.stream().filter(e -> StringUtils.isNotEmpty(e.getMultipleOrders())).map(OrderInfoEntity::getMultipleOrders).distinct().collect(Collectors.toList());
.map(OrderInfoEntity::getMultipleOrders).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(multipleOrdersFilterList)) { if (CollectionUtils.isNotEmpty(multipleOrdersFilterList)) {
return Result.success(multipleOrdersFilterList.get(0)); return Result.success(multipleOrdersFilterList.get(0));
} }
...@@ -229,9 +227,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -229,9 +227,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
orderCancelParam.setCancellationReason(reason); orderCancelParam.setCancellationReason(reason);
beanRemoteService.orderCancel(orderCancelParam); beanRemoteService.orderCancel(orderCancelParam);
//记录流程 //记录流程
commonService.addOrderEvent(orderId, "", "BEAN", "BEAN", OrderEventEnum.cancel.getEvent(), commonService.addOrderEvent(orderId, "", "BEAN", "BEAN", OrderEventEnum.cancel.getEvent(), String.format(OrderEventEnum.cancel.getMsg(), engineerName + "-" + (ObjectUtil.isNotNull(orgTeamEntity) ? orgTeamEntity.getTeamName() : "")), "", actualStartTime);
String.format(OrderEventEnum.cancel.getMsg(), engineerName + "-" + (ObjectUtil.isNotNull(orgTeamEntity) ? orgTeamEntity.getTeamName() : "")),
"", actualStartTime);
} else if (request.getOrderStatus().equalsIgnoreCase(OrderStatusEnum.RESCHEDULED.getCode())) { } else if (request.getOrderStatus().equalsIgnoreCase(OrderStatusEnum.RESCHEDULED.getCode())) {
//组装改约接口 //组装改约接口
OrderReschedule reschedule = new OrderReschedule(); OrderReschedule reschedule = new OrderReschedule();
...@@ -245,6 +241,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -245,6 +241,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
reschedule.setOrderTags(request.getOrderTags()); reschedule.setOrderTags(request.getOrderTags());
reschedule.setExpectBegin(DateUtil.handleDate(request.getNewReservationTime(), orderInfo.getExpectTimeBegin())); reschedule.setExpectBegin(DateUtil.handleDate(request.getNewReservationTime(), orderInfo.getExpectTimeBegin()));
reschedule.setExpectEnd(DateUtil.handleDate(request.getNewReservationTime(), orderInfo.getExpectTimeEnd())); reschedule.setExpectEnd(DateUtil.handleDate(request.getNewReservationTime(), orderInfo.getExpectTimeEnd()));
reschedule.setHappendDate(happenDate);
if (StringUtils.isNotBlank(request.getDescription())) { if (StringUtils.isNotBlank(request.getDescription())) {
reschedule.setDescription(request.getDescription()); reschedule.setDescription(request.getDescription());
} }
...@@ -273,6 +270,8 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -273,6 +270,8 @@ public class OrderInfoServiceImpl implements OrderInfoService {
} }
LocalDateTime expectEnd = TimeUtils.IsoDateTime2LocalDateTime(req.getExpectEnd()); LocalDateTime expectEnd = TimeUtils.IsoDateTime2LocalDateTime(req.getExpectEnd());
OrderInfoEntity order = orderInfoDao.getByOrderId(req.getOrderId()); OrderInfoEntity order = orderInfoDao.getByOrderId(req.getOrderId());
final OrderInfoEntity sourceOrder = new OrderInfoEntity();
BeanUtils.copyProperties(order, sourceOrder);
if (ObjectUtil.isNull(order)) { if (ObjectUtil.isNull(order)) {
throw new BusinessException("订单不存在"); throw new BusinessException("订单不存在");
} }
...@@ -383,8 +382,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -383,8 +382,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
} }
} }
} }
log.info("[orderReschedule] orderId:{} orderstatus: isToday:{},isBelong:{},isNetwork:{},isAssign:{},skillUpdate:{}", log.info("[orderReschedule] orderId:{} orderstatus: isToday:{},isBelong:{},isNetwork:{},isAssign:{},skillUpdate:{}", order.getOrderId(), isToday, isBelong, isNetwork, isAssign, skillUpdate);
order.getOrderId(), isToday, isBelong, isNetwork, isAssign, skillUpdate);
// 当天单变更技能直接人工指派 // 当天单变更技能直接人工指派
if (isToday && skillUpdate) { if (isToday && skillUpdate) {
if (isAssign) { if (isAssign) {
...@@ -460,8 +458,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -460,8 +458,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
OrgTeamEntity teamInfo = null; OrgTeamEntity teamInfo = null;
if (StringUtils.isNotBlank(teamId)) { if (StringUtils.isNotBlank(teamId)) {
teamInfo = orgTeamDao.getByTeamId(teamId); teamInfo = orgTeamDao.getByTeamId(teamId);
special = CommonUtil.isSpecial(order.getExpectTimeBegin().toLocalTime(), special = CommonUtil.isSpecial(order.getExpectTimeBegin().toLocalTime(), order.getExpectTimeEnd().toLocalTime(), teamInfo.getWorkOn(), teamInfo.getWorkOff());
order.getExpectTimeEnd().toLocalTime(), teamInfo.getWorkOn(), teamInfo.getWorkOff());
cutoff = CommonUtil.isCutoff(order.getExpectTimeBegin(), teamInfo.getWorkOff()); cutoff = CommonUtil.isCutoff(order.getExpectTimeBegin(), teamInfo.getWorkOff());
} else { } else {
cutoff = CommonUtil.isCutoff(order.getExpectTimeBegin(), null); cutoff = CommonUtil.isCutoff(order.getExpectTimeBegin(), null);
...@@ -479,15 +476,56 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -479,15 +476,56 @@ public class OrderInfoServiceImpl implements OrderInfoService {
order.setPlanEndTime(order.getExpectTimeEnd()); order.setPlanEndTime(order.getExpectTimeEnd());
orderInfoDao.save(order); orderInfoDao.save(order);
log.info("[orderReschedule] orderId:{}, order: {}", order.getOrderId(), JSONObject.toJSONString(order)); log.info("[orderReschedule] orderId:{}, order: {}", order.getOrderId(), JSONObject.toJSONString(order));
//回调改约
Boolean boo = this.rescheduled(sourceOrder, order, req.getHappendDate(), req.getReschedulingReason(), StringUtils.isNotBlank(req.getOperator()) ? req.getOperator() : "PEA");
log.info("[orderReschedule] orderId:{}, 通知bean结果: {}", order.getOrderId(), boo);
if (!boo) {
throw new BusinessException("服务工单变更结果通知BEAN失败");
}
// 登记事件 // 登记事件
commonService.addOrderEvent(req.getOrderId(), "", req.getOperator(), req.getOperator(), OrderEventEnum.recontracting.getEvent(), commonService.addOrderEvent(req.getOrderId(), "", req.getOperator(), req.getOperator(), OrderEventEnum.recontracting.getEvent(), String.format(OrderEventEnum.recontracting.getMsg(), engineerName + "-" + (ObjectUtil.isNotNull(orgTeamEntity) ? orgTeamEntity.getTeamName() : ""), ObjectUtil.isNotNull(orgGroupEntity) ? orgGroupEntity.getGroupName() : "", req.getExpectBegin(), req.getReschedulingReason()), StringUtils.isNotBlank(req.getReschedulingReason()) ? "改约原因:" + req.getReschedulingReason() : "");
String.format(OrderEventEnum.recontracting.getMsg(), engineerName + "-" + (ObjectUtil.isNotNull(orgTeamEntity) ? orgTeamEntity.getTeamName() : ""),
ObjectUtil.isNotNull(orgGroupEntity) ? orgGroupEntity.getGroupName() : "", req.getExpectBegin(), req.getReschedulingReason()),
StringUtils.isNotBlank(req.getReschedulingReason()) ? "改约原因:" + req.getReschedulingReason() : "");
return Result.success(null); return Result.success(null);
} }
@Override
public Boolean rescheduled(OrderInfoEntity source, OrderInfoEntity target, Date happened, String reason, String operator) {
if (source.getOrderId().startsWith("peatest") || Objects.equals(operator, "BEAN")) {
return true;
}
Rescheduled rescheduled = new Rescheduled();
rescheduled.setRisId(source.getOrderId());
rescheduled.setInitiatorOfRescheduling(operator);
Reason reasons = new Reason();
reasons.setOneLevel(reason);
rescheduled.setReasonForRescheduling(reasons);
rescheduled.setRescheduledDate(happened.getTime());
rescheduled.setRequireApprove(Boolean.FALSE);
String engineerCode = target.getEngineerCode();
EngineerInfoEntity byEngineerCode = engineerInfoDao.getByEngineerCode(engineerCode);
rescheduled.setExecutorWorkNo(byEngineerCode.getCosmosId());
rescheduled.setOrgUnitId(byEngineerCode.getGroupId());
if (StringUtils.isNotBlank(target.getEngineerCodeSub())) {
EngineerInfoEntity code = engineerInfoDao.getByEngineerCode(target.getEngineerCodeSub());
rescheduled.setAssistantWorkNo(code.getCosmosId());
rescheduled.setAssOrgUnitId(code.getGroupId());
}
if ((StringUtils.isNotBlank(target.getEngineerCode()) && !Objects.equals(engineerCode, source.getEngineerCode())) ||
(StringUtils.isNotBlank(target.getEngineerCodeSub()) && !Objects.equals(target.getEngineerCodeSub(), source.getEngineerCodeSub()))) {
rescheduled.setReassignment(Boolean.TRUE);
} else {
rescheduled.setReassignment(Boolean.FALSE);
}
return beanRemoteService.orderRescheduled(rescheduled);
}
/** /**
* 改约原因 * 改约原因
* *
...@@ -781,8 +819,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -781,8 +819,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
for (int i = 0; i < engineerLeaveTimeSlice.size(); i++) { for (int i = 0; i < engineerLeaveTimeSlice.size(); i++) {
OccupyInfoDetail occupyInfoDetail = engineerLeaveTimeSlice.get(i); OccupyInfoDetail occupyInfoDetail = engineerLeaveTimeSlice.get(i);
// 请假之中 // 请假之中
if (isLeave && (expectTimeBegin.compareTo(occupyInfoDetail.getBeginTime()) >= 0 || expectTimeBegin.plusMinutes(takeTime + rodeTime).compareTo(occupyInfoDetail.getBeginTime()) >= 0) && if (isLeave && (expectTimeBegin.compareTo(occupyInfoDetail.getBeginTime()) >= 0 || expectTimeBegin.plusMinutes(takeTime + rodeTime).compareTo(occupyInfoDetail.getBeginTime()) >= 0) && (expectTimeEnd.compareTo(occupyInfoDetail.getEndTime()) <= 0 || expectTimeEnd.plusMinutes(takeTime + rodeTime).compareTo(occupyInfoDetail.getEndTime()) <= 0)) {
(expectTimeEnd.compareTo(occupyInfoDetail.getEndTime()) <= 0 || expectTimeEnd.plusMinutes(takeTime + rodeTime).compareTo(occupyInfoDetail.getEndTime()) <= 0)) {
return null; return null;
} }
// 请假开始之前能插入 // 请假开始之前能插入
...@@ -815,8 +852,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -815,8 +852,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
for (int i = 0; i < engineerLeaveTimeSlice.size(); i++) { for (int i = 0; i < engineerLeaveTimeSlice.size(); i++) {
OccupyInfoDetail occupyInfoDetail = engineerLeaveTimeSlice.get(i); OccupyInfoDetail occupyInfoDetail = engineerLeaveTimeSlice.get(i);
// 请假之中 // 请假之中
if (isLeave && (expectTimeBegin.compareTo(occupyInfoDetail.getBeginTime()) >= 0 || expectTimeBegin.plusMinutes(takeTime).compareTo(occupyInfoDetail.getBeginTime()) >= 0) && if (isLeave && (expectTimeBegin.compareTo(occupyInfoDetail.getBeginTime()) >= 0 || expectTimeBegin.plusMinutes(takeTime).compareTo(occupyInfoDetail.getBeginTime()) >= 0) && (expectTimeEnd.compareTo(occupyInfoDetail.getEndTime()) <= 0 || expectTimeEnd.plusMinutes(takeTime).compareTo(occupyInfoDetail.getEndTime()) <= 0)) {
(expectTimeEnd.compareTo(occupyInfoDetail.getEndTime()) <= 0 || expectTimeEnd.plusMinutes(takeTime).compareTo(occupyInfoDetail.getEndTime()) <= 0)) {
return Result.failed(StatusCodeEnum.ENGINEER_IS_LEAVE_TIME); return Result.failed(StatusCodeEnum.ENGINEER_IS_LEAVE_TIME);
} }
// 请假开始之前能插入 // 请假开始之前能插入
...@@ -912,8 +948,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { ...@@ -912,8 +948,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
// order.setIsSpecialTime(CommonUtil.isSpecial(order.getExpectTimeBegin().toLocalTime(), // order.setIsSpecialTime(CommonUtil.isSpecial(order.getExpectTimeBegin().toLocalTime(),
// order.getExpectTimeEnd().toLocalTime(), teamInfo.getWorkOn(), teamInfo.getWorkOff())); // order.getExpectTimeEnd().toLocalTime(), teamInfo.getWorkOn(), teamInfo.getWorkOff()));
//特殊时间段 //特殊时间段
Integer special = CommonUtil.isSpecial(order.getExpectTimeBegin().toLocalTime(), Integer special = CommonUtil.isSpecial(order.getExpectTimeBegin().toLocalTime(), order.getExpectTimeEnd().toLocalTime(), teamInfo.getWorkOn(), teamInfo.getWorkOff());
order.getExpectTimeEnd().toLocalTime(), teamInfo.getWorkOn(), teamInfo.getWorkOff());
Integer cutoff = CommonUtil.isCutoff(order.getExpectTimeBegin(), teamInfo.getWorkOff()); Integer cutoff = CommonUtil.isCutoff(order.getExpectTimeBegin(), teamInfo.getWorkOff());
// 处理cutoff 动态排班结束后创建的当日单和次日单 // 处理cutoff 动态排班结束后创建的当日单和次日单
boolean isTomorrow = DateUtil.judgeTimeIsisTomorrow(order.getExpectTimeBegin()); boolean isTomorrow = DateUtil.judgeTimeIsisTomorrow(order.getExpectTimeBegin());
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!