工单过期完善
This commit is contained in:
parent
85d2b1a4c3
commit
119d53ee69
@ -16,10 +16,11 @@ import java.util.TimeZone;
|
||||
public class EbikeTenantFactory implements TenantFactory {
|
||||
|
||||
public Object[] getTenantIds() {
|
||||
try {
|
||||
if (StpUtil.isLogin()) {
|
||||
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
|
||||
if (attributes != null) {
|
||||
Object attribute = attributes.getAttribute("tenantId", RequestAttributes.SCOPE_REQUEST);
|
||||
if (attribute != null) {
|
||||
String id = (String) StpUtil.getLoginId();
|
||||
Object object = StpUtil.getSessionByLoginId(id).get(id);
|
||||
ObjectMapper objectMapper = new ObjectMapper()
|
||||
@ -35,7 +36,10 @@ public class EbikeTenantFactory implements TenantFactory {
|
||||
break;
|
||||
}
|
||||
}
|
||||
long tenantId = Long.parseLong(attribute.toString());
|
||||
long tenantId = 0;
|
||||
if (attribute != null) {
|
||||
tenantId = Long.parseLong(attribute.toString());
|
||||
}
|
||||
//系统管理员
|
||||
if (isSysAdmin) {
|
||||
return null;
|
||||
@ -46,5 +50,9 @@ public class EbikeTenantFactory implements TenantFactory {
|
||||
|
||||
}
|
||||
return null;
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -276,6 +276,17 @@ public class EbikeBikeOrderController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 有效调度工单统计
|
||||
*
|
||||
* @return 操作结果
|
||||
*/
|
||||
@GetMapping("effectiveDispatchOrder")
|
||||
public JsonResult<List<EffectiveDispatchOrderDto>> effectiveDispatchOrder(@RequestBody EffectiveDispatchOrderVo effectiveDispatchOrderVo) {
|
||||
List<EffectiveDispatchOrderDto> list = ebikeBikeOrderService.effectiveDispatchOrder(effectiveDispatchOrderVo);
|
||||
return JsonResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 工单看板
|
||||
*
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
package com.cdzy.operations.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author attiya
|
||||
* @since 2025-12-23
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class EffectiveDispatchOrderDto {
|
||||
|
||||
/**
|
||||
* 用户名
|
||||
*/
|
||||
private String username;
|
||||
|
||||
/**
|
||||
* 用户名
|
||||
*/
|
||||
private String staffId;
|
||||
|
||||
/**
|
||||
* 有效调度工单总数
|
||||
*/
|
||||
private Integer count;
|
||||
|
||||
}
|
||||
@ -1,9 +1,6 @@
|
||||
package com.cdzy.operations.service;
|
||||
|
||||
import com.cdzy.operations.model.dto.EbikeBikeOrderInfoDto;
|
||||
import com.cdzy.operations.model.dto.EbikeOrderBikeListDto;
|
||||
import com.cdzy.operations.model.dto.EbikeOrderBikeInfoDto;
|
||||
import com.cdzy.operations.model.dto.EbikeOrderBulletinBoardInfo;
|
||||
import com.cdzy.operations.model.dto.*;
|
||||
import com.cdzy.operations.model.entity.EbikeBikeOrder;
|
||||
import com.cdzy.operations.model.entity.EbikeRegion;
|
||||
import com.cdzy.operations.model.vo.*;
|
||||
@ -133,4 +130,11 @@ public interface EbikeBikeOrderService extends IService<EbikeBikeOrder> {
|
||||
* 工单看板
|
||||
*/
|
||||
EbikeOrderBulletinBoardInfo bulletinBoard();
|
||||
|
||||
/**
|
||||
* 有效调度工单统计
|
||||
* @param effectiveDispatchOrderVo 筛选信息
|
||||
* @return 统计结果
|
||||
*/
|
||||
List<EffectiveDispatchOrderDto> effectiveDispatchOrder(EffectiveDispatchOrderVo effectiveDispatchOrderVo);
|
||||
}
|
||||
|
||||
@ -6,10 +6,7 @@ import com.cdzy.common.ex.EbikeException;
|
||||
import com.cdzy.common.model.dto.ResGPSDto;
|
||||
import com.cdzy.operations.enums.*;
|
||||
import com.cdzy.operations.mapper.*;
|
||||
import com.cdzy.operations.model.dto.EbikeBikeOrderInfoDto;
|
||||
import com.cdzy.operations.model.dto.EbikeOrderBikeInfoDto;
|
||||
import com.cdzy.operations.model.dto.EbikeOrderBikeListDto;
|
||||
import com.cdzy.operations.model.dto.EbikeOrderBulletinBoardInfo;
|
||||
import com.cdzy.operations.model.dto.*;
|
||||
import com.cdzy.operations.model.entity.*;
|
||||
import com.cdzy.operations.model.vo.*;
|
||||
import com.cdzy.operations.service.EbikeBikeOrderService;
|
||||
@ -34,7 +31,11 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static com.cdzy.operations.model.entity.table.EbikeBatteryInfoTableDef.EBIKE_BATTERY_INFO;
|
||||
import static com.cdzy.operations.model.entity.table.EbikeBikeInfoTableDef.EBIKE_BIKE_INFO;
|
||||
@ -200,6 +201,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
.orderCode(snowFlakeIDKeyGenerator.nextId())
|
||||
.orderType(BikeOrderType.DISPATCH)
|
||||
.operatorId(bikeInfo.getOperatorId())
|
||||
.dispatchState(OrderDispatchState.PROCESSED)
|
||||
.build();
|
||||
this.mapper.insert(ebikeBikeOrder);
|
||||
//TODO:车辆状态
|
||||
@ -596,7 +598,9 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
ebikeOrderFileMapper.insertBatch(list);
|
||||
}
|
||||
//TODO:车辆状态
|
||||
bikeOrder.setHandleAt(LocalDateTime.now());
|
||||
updateById(bikeOrder);
|
||||
redisUtil.saveDispatchOrder(bikeOrder.getOrderId(),bikeOrder,5L, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -627,15 +631,15 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
throw new EbikeException("车辆编号错误");
|
||||
}
|
||||
Boolean isFault = inspectionVo.getIsFault();
|
||||
if (isFault){
|
||||
if (isFault) {
|
||||
queryWrapper.clear();
|
||||
queryWrapper.select(EBIKE_ORDER_FILE.FILE_URL)
|
||||
.where(EBIKE_ORDER_FILE.ORDER_ID.eq( bikeOrder.getOrderId()));
|
||||
List<String> list = ebikeOrderFileMapper.selectListByQueryAs(queryWrapper,String.class);
|
||||
.where(EBIKE_ORDER_FILE.ORDER_ID.eq(bikeOrder.getOrderId()));
|
||||
List<String> list = ebikeOrderFileMapper.selectListByQueryAs(queryWrapper, String.class);
|
||||
|
||||
queryWrapper.clear();
|
||||
queryWrapper.select(EBIKE_ORDER_PART.ORDER_PART)
|
||||
.where(EBIKE_ORDER_PART.ORDER_ID.eq( bikeOrder.getOrderId()));
|
||||
.where(EBIKE_ORDER_PART.ORDER_ID.eq(bikeOrder.getOrderId()));
|
||||
List<Integer> parts = ebikeOrderPartMapper.selectListByQueryAs(queryWrapper, Integer.class);
|
||||
|
||||
EbikeBikeOrder ebikeBikeOrder = EbikeBikeOrder.builder()
|
||||
@ -753,6 +757,27 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EffectiveDispatchOrderDto> effectiveDispatchOrder(EffectiveDispatchOrderVo effectiveDispatchOrderVo) {
|
||||
|
||||
if (effectiveDispatchOrderVo.getStartTime() == null) {
|
||||
effectiveDispatchOrderVo.setStartTime(LocalDateTime.now().toLocalDate().withDayOfMonth(1).atStartOfDay());
|
||||
}
|
||||
|
||||
if (effectiveDispatchOrderVo.getEndTime() == null) {
|
||||
effectiveDispatchOrderVo.setEndTime(LocalDateTime.now().toLocalDate().withDayOfMonth(LocalDate.now().lengthOfMonth()).atTime(LocalTime.MAX));
|
||||
}
|
||||
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(QueryMethods.count().as(EffectiveDispatchOrderDto::getCount),EBIKE_BIKE_ORDER.RECEIVER_ID.as(EffectiveDispatchOrderDto::getStaffId))
|
||||
.where(EBIKE_BIKE_ORDER.HANDLE_AT.between(effectiveDispatchOrderVo.getStartTime(), effectiveDispatchOrderVo.getEndTime()))
|
||||
.where(EBIKE_BIKE_ORDER.ORDER_TYPE.eq(BikeOrderType.DISPATCH))
|
||||
.where(EBIKE_BIKE_ORDER.DISPATCH_STATE.eq(OrderDispatchState.EFFECTIVE))
|
||||
.groupBy(EBIKE_BIKE_ORDER.RECEIVER_ID)
|
||||
.orderBy("count",true);
|
||||
return ebikeBikeOrderMapper.selectListByQueryAs(queryWrapper, EffectiveDispatchOrderDto.class);
|
||||
}
|
||||
|
||||
EbikeBikeInfo checkBikeCode(String bikeCode) {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.where(EBIKE_BIKE_INFO.BIKE_CODE.eq(bikeCode))
|
||||
|
||||
@ -1,14 +1,20 @@
|
||||
package com.cdzy.operations;
|
||||
|
||||
import com.cdzy.operations.utils.RedisUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest
|
||||
class EbikeOperationsApplicationTests {
|
||||
|
||||
@Resource
|
||||
RedisUtil redisUtil;
|
||||
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
redisUtil.releaseDispatchLock("bike:dispatch:lock:360967408603103232");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user