创建车辆调度工单和根据工单ID获取对应信息
This commit is contained in:
parent
24fdfa7cb8
commit
4ec7e8febf
@ -740,4 +740,34 @@ public class EbikeBikeInfoController {
|
|||||||
return JsonResult.failed("删除失败");
|
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
|
* @return
|
||||||
*/
|
*/
|
||||||
ResEbikeBikeWorkOrderDto getWorkOrderInfo(String orderId);
|
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.model.pojo.*;
|
||||||
import com.cdzy.ebikemaintenance.service.EbikeBikeInfoService;
|
import com.cdzy.ebikemaintenance.service.EbikeBikeInfoService;
|
||||||
import com.cdzy.ebikemaintenance.service.EbikeBikeOrderService;
|
import com.cdzy.ebikemaintenance.service.EbikeBikeOrderService;
|
||||||
|
import com.cdzy.ebikemaintenance.service.EbikeScheduleWorkOrderExtensionService;
|
||||||
import com.cdzy.ebikemaintenance.utils.GeoCodingUtil;
|
import com.cdzy.ebikemaintenance.utils.GeoCodingUtil;
|
||||||
import com.cdzy.ebikemaintenance.utils.MinioUtil;
|
import com.cdzy.ebikemaintenance.utils.MinioUtil;
|
||||||
import com.cdzy.ebikemaintenance.utils.RedisUtil;
|
import com.cdzy.ebikemaintenance.utils.RedisUtil;
|
||||||
@ -32,6 +33,7 @@ import com.mybatisflex.spring.service.impl.ServiceImpl;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
|
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;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
@ -115,6 +117,10 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
|
|||||||
private GeoCodingUtil geoCodingUtil;
|
private GeoCodingUtil geoCodingUtil;
|
||||||
@Resource
|
@Resource
|
||||||
private EbikeVehicleListingRecordsMapper ebikeVehicleListingRecordsMapper;
|
private EbikeVehicleListingRecordsMapper ebikeVehicleListingRecordsMapper;
|
||||||
|
@Resource
|
||||||
|
private EbikeDispatchRecordsMapper ebikeDispatchRecordsMapper;
|
||||||
|
@Resource
|
||||||
|
private EbikeScheduleWorkOrderExtensionMapper ebikeScheduleWorkOrderExtensionMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EbikeBikeInfo getByBikeCode(String bikeCode) {
|
public EbikeBikeInfo getByBikeCode(String bikeCode) {
|
||||||
@ -1128,4 +1134,85 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
|
|||||||
ebikeVehicleListingRecordsMapper.insertBatch(recordsList);
|
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