整车绑定前部件出库接口对接

This commit is contained in:
dzl 2025-05-28 09:49:08 +08:00
parent 99a84b470b
commit 6721873233
6 changed files with 250 additions and 38 deletions

View File

@ -0,0 +1,27 @@
package com.cdzy.common.model;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
/**
* 电池出库记录 实体类
*
* @author dingchao
* @since 2025-03-25
*/
@Data
public class EbikeBatteryOutRecords {
/**
* 电池编号
*/
private String batteryCode;
}

View File

@ -0,0 +1,32 @@
package com.cdzy.common.model;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
/**
* 实体类
*
* @author zjd
* @since 2025-05-19
*/
@Data
public class EbikeEcuOutRecords {
/**
* 中控编码
*/
private String ecuCode;
/**
* 中控序列号
*/
private String ecuSn;
}

View File

@ -0,0 +1,27 @@
package com.cdzy.common.model;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
/**
* 头盔出库记录 实体类
*
* @author dingchao
* @since 2025-03-25
*/
@Data
public class EbikeHelmetOutRecords {
/**
* 头盔编号
*/
private String helmetCode;
}

View File

@ -0,0 +1,72 @@
package com.cdzy.common.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 设备部件出库Dto
*
* @author zjd
* @date 2025/5/20
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ReqComponentOutRecordDto {
/**
* 部件记录主键若存在记录ID则传递若无则可不传
*/
private String componentOutRecordId;
/**
* 所属区域表示设备部件出库的区域
*/
private String owningRegion;
/**
* 原部件处理方案
*/
private String oldComponentHandleOption;
/**
* 部件类型ID表示部件的类别如电池ECU等部件的编号
*/
private String componentType;
/**
* 出库数量表示该批次部件的数量
*/
private Integer outQuantity;
/**
* 入库数量
*/
private Integer enterQuantity;
/**
* 入库类型0或空 表示暂存1 表示出库
*/
private Integer stockInType;
/**
* 是否为整车绑定出库
*/
private Boolean isWholeBinding;
/**
* 中控信息列表包含所有ECU部件的出库记录
*/
private List<EbikeEcuOutRecords> ebikeEcuOutRecords;
/**
* 头盔信息列表包含所有头盔部件的出库记录
*/
private List<EbikeHelmetOutRecords> ebikeHelmetOutRecords;
/**
* 电池信息列表包含所有电池部件的出库记录
*/
private List<EbikeBatteryOutRecords> ebikeBatteryOutRecords;
}

View File

@ -8,6 +8,7 @@ import com.ebike.feign.model.res.ReqEbikeTrackingDto;
import com.ebike.feign.model.res.ReqUserOperateDto; import com.ebike.feign.model.res.ReqUserOperateDto;
import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetDto; import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetDto;
import com.ebike.feign.model.rsp.FeignEbikeRegionDto; import com.ebike.feign.model.rsp.FeignEbikeRegionDto;
import com.cdzy.common.model.ReqComponentOutRecordDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -163,4 +164,12 @@ public interface OperateFeignClient {
@PostMapping("ebikeTracking/querySite") @PostMapping("ebikeTracking/querySite")
JsonResult<?> querySite(@RequestBody ReqEbikeSiteQuery siteQuery); JsonResult<?> querySite(@RequestBody ReqEbikeSiteQuery siteQuery);
/**
* 部件出库
*
* @param reqComponentOutRecordDto 出库参数
* @return
*/
@PostMapping("ebikeComponent/ComponentInventoryOutbound")
JsonResult<?> componentInventoryOutbound(@RequestBody ReqComponentOutRecordDto reqComponentOutRecordDto);
} }

View File

@ -5,10 +5,8 @@ import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.cdzy.common.enums.Code; import com.cdzy.common.enums.Code;
import com.cdzy.common.model.CoreResult;
import com.cdzy.common.model.JsonResult;
import com.cdzy.common.model.PageParam; import com.cdzy.common.model.PageParam;
import com.cdzy.common.model.ResGPSDto; import com.cdzy.common.model.*;
import com.cdzy.common.utils.CoordinateUtil; import com.cdzy.common.utils.CoordinateUtil;
import com.cdzy.ebikemaintenance.controller.EbikeInfoCoreController; import com.cdzy.ebikemaintenance.controller.EbikeInfoCoreController;
import com.cdzy.ebikemaintenance.enums.EbikeStatus; import com.cdzy.ebikemaintenance.enums.EbikeStatus;
@ -21,6 +19,7 @@ import com.cdzy.ebikemaintenance.service.EbikeBikeOrderService;
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;
import com.ebike.feign.clients.OperateFeignClient;
import com.ebike.feign.clients.StaffFeignClient; import com.ebike.feign.clients.StaffFeignClient;
import com.ebike.feign.model.res.ReqEcuSnDto; import com.ebike.feign.model.res.ReqEcuSnDto;
import com.ebike.feign.model.res.StaffIds; import com.ebike.feign.model.res.StaffIds;
@ -36,6 +35,7 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.common.errors.ResourceNotFoundException; import org.apache.kafka.common.errors.ResourceNotFoundException;
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;
@ -104,6 +104,8 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
private EbikeBatteryInfoServiceImpl ebikeBatteryInfoServiceImpl; private EbikeBatteryInfoServiceImpl ebikeBatteryInfoServiceImpl;
@Resource @Resource
private StaffFeignClient staffFeignClient; private StaffFeignClient staffFeignClient;
@Autowired
private OperateFeignClient operateFeignClient;
@Resource @Resource
private EbikeBikeComMapper ebikeBikeComMapper; private EbikeBikeComMapper ebikeBikeComMapper;
@Resource @Resource
@ -127,6 +129,7 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
private EbikeScheduleWorkOrderExtensionMapper ebikeScheduleWorkOrderExtensionMapper; private EbikeScheduleWorkOrderExtensionMapper ebikeScheduleWorkOrderExtensionMapper;
@Resource @Resource
private EbikeVehicleDispatchFileMapper ebikeVehicleDispatchFileMapper; private EbikeVehicleDispatchFileMapper ebikeVehicleDispatchFileMapper;
@Override @Override
public EbikeBikeInfo getByBikeCode(String bikeCode) { public EbikeBikeInfo getByBikeCode(String bikeCode) {
QueryWrapper query = QueryWrapper.create(); QueryWrapper query = QueryWrapper.create();
@ -152,10 +155,42 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
BeanUtils.copyProperties(reqEbikeBikeInfoDto.getEbikeBatteryInfo(), ebikeBatteryInfo); BeanUtils.copyProperties(reqEbikeBikeInfoDto.getEbikeBatteryInfo(), ebikeBatteryInfo);
EbikeEcuInfo ebikeEcuInfo = new EbikeEcuInfo(); EbikeEcuInfo ebikeEcuInfo = new EbikeEcuInfo();
BeanUtils.copyProperties(reqEbikeBikeInfoDto.getEbikeEcuInfo(), ebikeEcuInfo); BeanUtils.copyProperties(reqEbikeBikeInfoDto.getEbikeEcuInfo(), ebikeEcuInfo);
//部件出库
ReqComponentOutRecordDto reqComponentOutRecordDto = new ReqComponentOutRecordDto();
reqComponentOutRecordDto.setOldComponentHandleOption("整车绑定出库");
reqComponentOutRecordDto.setStockInType(1);
reqComponentOutRecordDto.setOutQuantity(1);
reqComponentOutRecordDto.setIsWholeBinding(true);
List<EbikeEcuOutRecords> ebikeEcuOutRecords = new ArrayList<>();
EbikeEcuOutRecords ecuOutRecords = new EbikeEcuOutRecords();
BeanUtils.copyProperties(ebikeEcuInfo, ecuOutRecords);
ebikeEcuOutRecords.add(ecuOutRecords);
reqComponentOutRecordDto.setEbikeEcuOutRecords(ebikeEcuOutRecords);
reqComponentOutRecordDto.setComponentType("262711452730008");
//ecu出库
operateFeignClient.componentInventoryOutbound(reqComponentOutRecordDto);
ebikeEcuInfoMapper.insert(ebikeEcuInfo); ebikeEcuInfoMapper.insert(ebikeEcuInfo);
ebikeBikeInfo.setEcuId(ebikeEcuInfo.getEcuId()); ebikeBikeInfo.setEcuId(ebikeEcuInfo.getEcuId());
List<EbikeHelmetOutRecords> ebikeHelmetOutRecords = new ArrayList<>();
EbikeHelmetOutRecords helmetOutRecords = new EbikeHelmetOutRecords();
BeanUtils.copyProperties(ebikeHelmetInfo, helmetOutRecords);
ebikeHelmetOutRecords.add(helmetOutRecords);
reqComponentOutRecordDto.setEbikeHelmetOutRecords(ebikeHelmetOutRecords);
reqComponentOutRecordDto.setComponentType("262711452730001");
//头盔出库
operateFeignClient.componentInventoryOutbound(reqComponentOutRecordDto);
ebikeHelmetInfoMapper.insert(ebikeHelmetInfo); ebikeHelmetInfoMapper.insert(ebikeHelmetInfo);
ebikeBikeInfo.setHelmetId(ebikeHelmetInfo.getHelmetId()); ebikeBikeInfo.setHelmetId(ebikeHelmetInfo.getHelmetId());
List<EbikeBatteryOutRecords> ebikeBatteryOutRecords = new ArrayList<>();
EbikeBatteryOutRecords batteryOutRecords = new EbikeBatteryOutRecords();
BeanUtils.copyProperties(ebikeBatteryInfo, batteryOutRecords);
ebikeBatteryOutRecords.add(batteryOutRecords);
reqComponentOutRecordDto.setEbikeBatteryOutRecords(ebikeBatteryOutRecords);
reqComponentOutRecordDto.setComponentType("262711452730000");
//电池出库
operateFeignClient.componentInventoryOutbound(reqComponentOutRecordDto);
ebikeBatteryInfoMapper.insert(ebikeBatteryInfo); ebikeBatteryInfoMapper.insert(ebikeBatteryInfo);
ebikeBikeInfo.setBatteryId(ebikeBatteryInfo.getBatteryId()); ebikeBikeInfo.setBatteryId(ebikeBatteryInfo.getBatteryId());
ebikeBikeInfoMapper.insert(ebikeBikeInfo); ebikeBikeInfoMapper.insert(ebikeBikeInfo);
@ -1117,6 +1152,7 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
} }
return resEbikeBikeWorkOrderDto; return resEbikeBikeWorkOrderDto;
} }
/** /**
* 批量记录车辆上架信息 * 批量记录车辆上架信息
* *
@ -1155,6 +1191,7 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
/** /**
* 创建调度工单信息 * 创建调度工单信息
*
* @param eqWorkOrderDispatchDto * @param eqWorkOrderDispatchDto
* @return * @return
*/ */
@ -1217,6 +1254,7 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
/** /**
* 根据订单ID 获取车辆调度信息 * 根据订单ID 获取车辆调度信息
*
* @param orderId * @param orderId
* @return * @return
*/ */
@ -1238,8 +1276,10 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
return resDispatchVehicleDto; return resDispatchVehicleDto;
} }
/** /**
* 有工单-根据工单ID 车辆编号 新增调度车车辆 * 有工单-根据工单ID 车辆编号 新增调度车车辆
*
* @param ebikeDispatchRecordDto * @param ebikeDispatchRecordDto
*/ */
public EbikeDispatchRecords createDispatchRecord(ReqEbikeDispatchRecordDto ebikeDispatchRecordDto) { public EbikeDispatchRecords createDispatchRecord(ReqEbikeDispatchRecordDto ebikeDispatchRecordDto) {
@ -1264,8 +1304,10 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
ebikeDispatchRecordsMapper.insert(ebikeDispatchRecords); ebikeDispatchRecordsMapper.insert(ebikeDispatchRecords);
return ebikeDispatchRecords; return ebikeDispatchRecords;
} }
/** /**
* 删除调度记录接口 * 删除调度记录接口
*
* @param recordId * @param recordId
* @return * @return
*/ */
@ -1437,6 +1479,7 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
return JsonResult.failed("获取工作订单列表时发生错误。"); return JsonResult.failed("获取工作订单列表时发生错误。");
} }
} }
public StaffFeign getStaffFeignInfo() { public StaffFeign getStaffFeignInfo() {
String tokenValue = StpUtil.getTokenValue(); String tokenValue = StpUtil.getTokenValue();
// 调用 Feign 客户端获取用户信息 // 调用 Feign 客户端获取用户信息
@ -1452,6 +1495,7 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
/** /**
* 根据regin_id 获取车辆详情和EcuId * 根据regin_id 获取车辆详情和EcuId
*
* @param regionId * @param regionId
* @return * @return
*/ */
@ -1469,6 +1513,7 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
return JsonResult.success(resEbikeInfoReginIdDtos); return JsonResult.success(resEbikeInfoReginIdDtos);
} }
private void modifyMaintenanceStatus(String bikeCode) { private void modifyMaintenanceStatus(String bikeCode) {
//是否存在维修中的订单数据 //是否存在维修中的订单数据
int i = ebikeBikeInfoMapper.selectOrderCount(bikeCode); int i = ebikeBikeInfoMapper.selectOrderCount(bikeCode);