|
|
@@ -371,7 +371,7 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
fulfillerLog.setActioner(LoginHelper.getUserId());
|
|
|
fulfillerLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
|
fulfillerLog.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
|
- fulfillerLog.setStep(OrderLogFulfillerStepEnum.RECIEVED.getValue());
|
|
|
+ fulfillerLog.setStep(OrderLogFulfillerStepEnum.RECIEVED.getStep());
|
|
|
fulfillerLog.setTitle(OrderLogFulfillerStepEnum.RECIEVED.getTitle());
|
|
|
fulfillerLog.setContent(String.format(OrderLogFulfillerStepEnum.RECIEVED.getContent(), LoginHelper.getLoginUser().getNickname()));
|
|
|
fulfillerLog.setTenantId(subOrder.getTenantId());
|
|
|
@@ -403,11 +403,14 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
return vo;
|
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public boolean clockIn(SysSubOrderClockInBo bo) {
|
|
|
|
|
|
+ List<SysSubOrderLog> logs = new ArrayList<>();
|
|
|
+
|
|
|
SysSubOrder subOrder = baseMapper.selectById(bo.getOrderId());
|
|
|
+
|
|
|
if (bo.getStartFlag()) {
|
|
|
subOrder.setStatus(OrderStatusEnum.IN_SERVICE.getValue());
|
|
|
boolean flag = baseMapper.updateById(subOrder) == 0;
|
|
|
@@ -415,12 +418,18 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
throw new RuntimeException("修改订单状态失败");
|
|
|
}
|
|
|
|
|
|
- } else if (bo.getFinalFlag()) {
|
|
|
- subOrder.setStatus(OrderStatusEnum.COMPLETED.getValue());
|
|
|
- boolean flag = baseMapper.updateById(subOrder) == 0;
|
|
|
- if (flag) {
|
|
|
- throw new RuntimeException("修改订单状态失败");
|
|
|
- }
|
|
|
+ SysSubOrderLog startSysLog = new SysSubOrderLog();
|
|
|
+ startSysLog.setSubOrderId(subOrder.getId());
|
|
|
+ startSysLog.setActioner(LoginHelper.getUserId());
|
|
|
+ startSysLog.setActionerType(OrderLogActionerTypeEnum.SYS_USER.getValue());
|
|
|
+ startSysLog.setLogType(OrderLogTypeEnum.ORDER.getValue());
|
|
|
+ OrderLogSystemStepEnum step = OrderLogSystemStepEnum.ARRIVED;
|
|
|
+ startSysLog.setStep(step.getStep());
|
|
|
+ startSysLog.setTitle(step.getTitle());
|
|
|
+ startSysLog.setContent(step.getContent());
|
|
|
+ startSysLog.setTenantId(subOrder.getTenantId());
|
|
|
+ logs.add(startSysLog);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
SysSubOrderLog log = new SysSubOrderLog();
|
|
|
@@ -433,11 +442,51 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
log.setContent(bo.getContent());
|
|
|
log.setPhotos(bo.getPhotos().stream().map(String::valueOf).collect(Collectors.joining(",")));
|
|
|
log.setTenantId(subOrder.getTenantId());
|
|
|
- boolean flag = subOrderLogMapper.insert(log) == 0;
|
|
|
- if (flag) {
|
|
|
+ logs.add(log);
|
|
|
+
|
|
|
+ if (bo.getEndFlag()) {
|
|
|
+ subOrder.setStatus(OrderStatusEnum.COMPLETED.getValue());
|
|
|
+ boolean flag = baseMapper.updateById(subOrder) == 0;
|
|
|
+ if (flag) {
|
|
|
+ throw new RuntimeException("修改订单状态失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ SysSubOrderLog endFlfLog = new SysSubOrderLog();
|
|
|
+ endFlfLog.setSubOrderId(subOrder.getId());
|
|
|
+ endFlfLog.setActioner(LoginHelper.getUserId());
|
|
|
+ endFlfLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
|
+ endFlfLog.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
|
+ OrderLogFulfillerStepEnum flfStep = OrderLogFulfillerStepEnum.COMPLETED;
|
|
|
+ endFlfLog.setStep(flfStep.getStep());
|
|
|
+ endFlfLog.setTitle(flfStep.getTitle());
|
|
|
+ endFlfLog.setContent(flfStep.getContent());
|
|
|
+ endFlfLog.setTenantId(subOrder.getTenantId());
|
|
|
+ logs.add(endFlfLog);
|
|
|
+
|
|
|
+ SysSubOrderLog endSysLog = new SysSubOrderLog();
|
|
|
+ endSysLog.setSubOrderId(subOrder.getId());
|
|
|
+ endSysLog.setActioner(LoginHelper.getUserId());
|
|
|
+ endSysLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
|
+ endSysLog.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
|
+ OrderLogSystemStepEnum sysStep = OrderLogSystemStepEnum.FINISH;
|
|
|
+ endSysLog.setStep(sysStep.getStep());
|
|
|
+ endSysLog.setTitle(sysStep.getTitle());
|
|
|
+ endSysLog.setContent(sysStep.getContent());
|
|
|
+ endSysLog.setTenantId(subOrder.getTenantId());
|
|
|
+ logs.add(endSysLog);
|
|
|
+
|
|
|
+ }
|
|
|
+ boolean flag = subOrderLogMapper.insertBatch(logs);
|
|
|
+ if (!flag) {
|
|
|
throw new RuntimeException("记录服务进度失败");
|
|
|
}
|
|
|
|
|
|
+ // 履约者拿到佣金
|
|
|
+ boolean fulfillerFlag = remoteFulfillerService.settlement(subOrder.getFulfiller(), subOrder.getPrice(), subOrder.getCode());
|
|
|
+ if (!fulfillerFlag) {
|
|
|
+ throw new RuntimeException("履约者新增佣金失败");
|
|
|
+ }
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@@ -446,6 +495,7 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
|
|
|
LambdaQueryWrapper<SysSubOrder> wrapper = Wrappers.lambdaQuery(SysSubOrder.class)
|
|
|
.eq(SysSubOrder::getStatus, bo.getStatus())
|
|
|
+ .eq(bo.getService() != null, SysSubOrder::getService, bo.getService())
|
|
|
.ge(bo.getStartServiceTime() != null, SysSubOrder::getServiceTime, bo.getStartServiceTime())
|
|
|
.le(bo.getEndServiceTime() != null, SysSubOrder::getServiceTime, bo.getEndServiceTime())
|
|
|
.orderByDesc(SysSubOrder::getId);
|
|
|
@@ -488,13 +538,14 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
RemoteCustomerVo customer = customerMap.get(e.getUsrCustomer());
|
|
|
if (customer != null) {
|
|
|
vo.setCustomerName(customer.getName());
|
|
|
- vo.setCustomerPhone(customer.getAddress());
|
|
|
+ vo.setCustomerPhone(customer.getPhone());
|
|
|
}
|
|
|
vo.setFromCode(e.getFromCode());
|
|
|
vo.setFromAddress(e.getFromAddress());
|
|
|
vo.setToCode(e.getToCode());
|
|
|
vo.setToAddress(e.getToAddress());
|
|
|
vo.setRemark(e.getRemark());
|
|
|
+ vo.setStatus(e.getStatus());
|
|
|
return vo;
|
|
|
}));
|
|
|
}
|
|
|
@@ -583,4 +634,33 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
|
|
|
return vos;
|
|
|
}
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public boolean reject(SysSubOrderRejectBo bo) {
|
|
|
+
|
|
|
+ SysSubOrder subOrder = baseMapper.selectById(bo.getOrderId());
|
|
|
+ subOrder.setStatus(OrderStatusEnum.CANCELLED.getValue());
|
|
|
+ boolean orderFlag = baseMapper.updateById(subOrder) == 0;
|
|
|
+ if (orderFlag) {
|
|
|
+ throw new RuntimeException("修改订单状态失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ SysSubOrderLog log = new SysSubOrderLog();
|
|
|
+ log.setSubOrderId(subOrder.getId());
|
|
|
+ log.setActioner(LoginHelper.getUserId());
|
|
|
+ log.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
|
+ log.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
|
+ OrderLogFulfillerStepEnum step = OrderLogFulfillerStepEnum.REJECT;
|
|
|
+ log.setStep(step.getStep());
|
|
|
+ log.setTitle(step.getTitle());
|
|
|
+ log.setContent(bo.getRejectReason());
|
|
|
+ log.setTenantId(subOrder.getTenantId());
|
|
|
+ boolean logFlag = subOrderLogMapper.insert(log) == 0;
|
|
|
+ if (logFlag) {
|
|
|
+ throw new RuntimeException("日志新增失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|