创建车辆调度工单和根据工单ID获取对应信息
This commit is contained in:
parent
24fdfa7cb8
commit
4ec7e8febf
@ -740,4 +740,34 @@ public class EbikeBikeInfoController {
|
||||
return JsonResult.failed("删除失败");
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 批量投放,创建车辆调度工单
|
||||
*
|
||||
* @param reqWorkOrderDispatchDto 车辆编号
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("createWorkOrderDispatch")
|
||||
public JsonResult<?> createWorkOrderDispatch(@RequestBody ReqWorkOrderDispatchDto reqWorkOrderDispatchDto) {
|
||||
|
||||
String orderId = ebikeBikeInfoService.createWorkOrderDispatch(reqWorkOrderDispatchDto);
|
||||
if (!StringUtils.isEmpty(orderId)) {
|
||||
return JsonResult.success("", orderId);
|
||||
}
|
||||
return JsonResult.failed("创建调度工单失败");
|
||||
}
|
||||
/**
|
||||
* 根据工单id 获取调度车辆数据接口
|
||||
*
|
||||
* @param orderId 工单Id
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("getDispatchVehicleByOrderId")
|
||||
public JsonResult<?> getDispatchVehicleByOrderId(@RequestParam(name = "orderId") String orderId) {
|
||||
ResDispatchVehicleDto resDispatchVehicleDto = ebikeBikeInfoService.getDispatchVehicleByOrderId(orderId);
|
||||
if (!StringUtils.isEmpty(resDispatchVehicleDto)) {
|
||||
return JsonResult.success("", resDispatchVehicleDto);
|
||||
}
|
||||
return JsonResult.failed("获取调度车辆数据失败!");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -234,4 +234,19 @@ public interface EbikeBikeInfoService extends IService<EbikeBikeInfo> {
|
||||
* @return
|
||||
*/
|
||||
ResEbikeBikeWorkOrderDto getWorkOrderInfo(String orderId);
|
||||
|
||||
/**
|
||||
* 批量投放
|
||||
*
|
||||
* @param reqWorkOrderDispatchDto
|
||||
* @return
|
||||
*/
|
||||
String createWorkOrderDispatch(ReqWorkOrderDispatchDto reqWorkOrderDispatchDto);
|
||||
/**
|
||||
* 根据工单id 获取调度车辆数据接口
|
||||
*
|
||||
* @param orderId
|
||||
* @return
|
||||
*/
|
||||
ResDispatchVehicleDto getDispatchVehicleByOrderId(String orderId);
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ import com.cdzy.ebikemaintenance.model.dto.response.*;
|
||||
import com.cdzy.ebikemaintenance.model.pojo.*;
|
||||
import com.cdzy.ebikemaintenance.service.EbikeBikeInfoService;
|
||||
import com.cdzy.ebikemaintenance.service.EbikeBikeOrderService;
|
||||
import com.cdzy.ebikemaintenance.service.EbikeScheduleWorkOrderExtensionService;
|
||||
import com.cdzy.ebikemaintenance.utils.GeoCodingUtil;
|
||||
import com.cdzy.ebikemaintenance.utils.MinioUtil;
|
||||
import com.cdzy.ebikemaintenance.utils.RedisUtil;
|
||||
@ -32,6 +33,7 @@ import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
@ -115,6 +117,10 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
|
||||
private GeoCodingUtil geoCodingUtil;
|
||||
@Resource
|
||||
private EbikeVehicleListingRecordsMapper ebikeVehicleListingRecordsMapper;
|
||||
@Resource
|
||||
private EbikeDispatchRecordsMapper ebikeDispatchRecordsMapper;
|
||||
@Resource
|
||||
private EbikeScheduleWorkOrderExtensionMapper ebikeScheduleWorkOrderExtensionMapper;
|
||||
|
||||
@Override
|
||||
public EbikeBikeInfo getByBikeCode(String bikeCode) {
|
||||
@ -1128,4 +1134,85 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
|
||||
ebikeVehicleListingRecordsMapper.insertBatch(recordsList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建调度工单信息
|
||||
* @param eqWorkOrderDispatchDto
|
||||
* @return
|
||||
*/
|
||||
public String createWorkOrderDispatch(ReqWorkOrderDispatchDto eqWorkOrderDispatchDto) {
|
||||
try {
|
||||
// 获取 token 和用户信息
|
||||
String tokenValue = StpUtil.getTokenValue();
|
||||
JsonResult<StaffFeign> result = staffFeignClient.getInfoByToken(tokenValue);
|
||||
|
||||
if (result.getCode() != Code.SUCCESS) {
|
||||
throw new RuntimeException("获取用户信息失败");
|
||||
}
|
||||
|
||||
StaffFeign staffFeign = result.getData();
|
||||
String userId = staffFeign.getStaffId().toString();
|
||||
// 生成工单编号
|
||||
SnowFlakeIDKeyGenerator snowFlakeIDKeyGenerator = new SnowFlakeIDKeyGenerator();
|
||||
long orderCode = snowFlakeIDKeyGenerator.nextId();
|
||||
// 创建工单
|
||||
EbikeBikeOrder ebikeBikeOrder = new EbikeBikeOrder();
|
||||
ebikeBikeOrder.setOrderCode(orderCode);
|
||||
ebikeBikeOrder.setOrderType("3"); // 设定工单类型(可能是常量,视需求而定)
|
||||
ebikeBikeOrder.setReceiverId(userId);
|
||||
ebikeBikeOrderMapper.insert(ebikeBikeOrder);
|
||||
// 创建工单扩展关联表
|
||||
EbikeScheduleWorkOrderExtension ebikeScheduleWorkOrderExtension = new EbikeScheduleWorkOrderExtension();
|
||||
ebikeScheduleWorkOrderExtension.setId(ebikeBikeOrder.getOrderId());
|
||||
ebikeScheduleWorkOrderExtension.setDispatchType(eqWorkOrderDispatchDto.getDispatchType());
|
||||
ebikeScheduleWorkOrderExtension.setSiteId(eqWorkOrderDispatchDto.getSiteId());//站点id
|
||||
ebikeScheduleWorkOrderExtensionMapper.insert(ebikeScheduleWorkOrderExtension);
|
||||
// 创建并保存调度记录
|
||||
List<EbikeDispatchRecords> records = new ArrayList<>();
|
||||
for (String bikeCode : eqWorkOrderDispatchDto.getBikeCodes()) {
|
||||
EbikeDispatchRecords dispatchRecord = new EbikeDispatchRecords();
|
||||
dispatchRecord.setOrderId(ebikeBikeOrder.getOrderId());
|
||||
dispatchRecord.setBikeCode(bikeCode);
|
||||
dispatchRecord.setStartStation(eqWorkOrderDispatchDto.getSiteId());
|
||||
records.add(dispatchRecord);
|
||||
}
|
||||
// 批量插入调度记录(如果支持批量插入的话)
|
||||
if (!records.isEmpty()) {
|
||||
ebikeDispatchRecordsMapper.insertBatch(records); // 假设有批量插入的方法
|
||||
}
|
||||
|
||||
// 返回工单 ID
|
||||
return ebikeBikeOrder.getOrderId();
|
||||
|
||||
} catch (Exception e) {
|
||||
// 异常处理,记录日志并抛出自定义异常或包装成 RuntimeException
|
||||
// 可以使用日志工具,例如 log4j 或 slf4j,记录错误详细信息
|
||||
log.error("创建工单调度失败", e);
|
||||
|
||||
// 可根据需求抛出更具体的异常
|
||||
throw new RuntimeException("创建工单调度时发生异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ID 获取车辆调度信息
|
||||
* @param orderId
|
||||
* @return
|
||||
*/
|
||||
public ResDispatchVehicleDto getDispatchVehicleByOrderId(String orderId){
|
||||
ResDispatchVehicleDto resDispatchVehicleDto=new ResDispatchVehicleDto();
|
||||
EbikeBikeOrder ebikeBikeOrder = ebikeBikeOrderMapper.selectOneById(orderId);
|
||||
EbikeScheduleWorkOrderExtension ebikeScheduleWorkOrderExtension = ebikeScheduleWorkOrderExtensionMapper.selectOneById(orderId);
|
||||
|
||||
QueryWrapper query = QueryWrapper.create();
|
||||
query.eq("order_id", orderId);
|
||||
List<EbikeDispatchRecords> ebikeDispatchRecords = ebikeDispatchRecordsMapper.selectListByQuery(query);
|
||||
resDispatchVehicleDto.setOrderId(orderId);
|
||||
resDispatchVehicleDto.setDispatchRecords(ebikeDispatchRecords);
|
||||
resDispatchVehicleDto.setBikeOrder(ebikeBikeOrder);
|
||||
resDispatchVehicleDto.setScheduleExtension(ebikeScheduleWorkOrderExtension);
|
||||
|
||||
|
||||
return resDispatchVehicleDto;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user