feat(tyre): 新增轮胎累计行驶里程查询接口

master
Yangk 15 hours ago
parent dff0cfd164
commit 221d3c2796

@ -499,4 +499,14 @@ public class BaseTyreController extends BaseController {
this.color = color; this.color = color;
} }
} }
/**
* PDA
*/
@PostMapping("/pdaQueryTyreMileage")
@ResponseBody
public AjaxResult pdaQueryTyreMileage(String tyreEpc)
{
return success(baseTyreService.queryTyreMileageSummary(tyreEpc));
}
} }

@ -40,6 +40,10 @@ public class RecordTyreMileage extends BaseEntity
private Long mileage; private Long mileage;
private Long mileageOld; private Long mileageOld;
/** 历史段里程(差值) */
@Excel(name = "段里程")
private Long mileageOld;
@Excel(name = "花纹深度") @Excel(name = "花纹深度")
private String patternDepth; private String patternDepth;
@ -154,6 +158,16 @@ public class RecordTyreMileage extends BaseEntity
return mileage; return mileage;
} }
public void setMileageOld(Long mileageOld)
{
this.mileageOld = mileageOld;
}
public Long getMileageOld()
{
return mileageOld;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -61,4 +61,11 @@ public interface RecordTyreMileageMapper
* @return * @return
*/ */
public int deleteRecordTyreMileageByIds(String[] ids); public int deleteRecordTyreMileageByIds(String[] ids);
/**
* RFID
* @param tyreRfid
* @return
*/
public Long selectTotalMileageByTyreRfid(String tyreRfid);
} }

@ -94,4 +94,6 @@ public interface IBaseTyreService
* </p> * </p>
*/ */
Map selectTyreDetailForWeb(BaseTyre baseTyre); Map selectTyreDetailForWeb(BaseTyre baseTyre);
Map<String, Object> queryTyreMileageSummary(String tyreRfid);
} }

@ -513,4 +513,67 @@ public class BaseTyreServiceImpl implements IBaseTyreService
} }
} }
} }
@Override
public Map<String, Object> queryTyreMileageSummary(String tyreRfid) {
Map<String, Object> result = new HashMap<>();
BaseTyre query = new BaseTyre();
query.setTyreEpc(tyreRfid);
BaseTyre tyre = baseTyreMapper.selectBaseTyreByEpc(query);
if (tyre == null) {
return result;
}
result.put("tyreNo", tyre.getTyreNo());
result.put("tyreBrand", tyre.getTyreBrand());
result.put("carNo", tyre.getCarNo());
result.put("wheelPostion", tyre.getWheelPostion());
result.put("tyreType", tyre.getTyreType());
// 1. 获取已结算的累计里程 (record_tyre_mileage 表中的 SUM(mileage_old))
Long settledMileage = recordTyreMileageMapper.selectTotalMileageByTyreRfid(tyreRfid);
if (settledMileage == null) {
settledMileage = 0L;
}
// 2. 计算当前在车里程 (如果是已装车状态)
long onCarMileage = 0;
if (StringUtils.isNotEmpty(tyre.getCarNo())) {
// 查找该轮胎在该车上的最近一次装车记录
RecordTyreInstall installQuery = new RecordTyreInstall();
installQuery.setTyreRfid(tyreRfid);
installQuery.setCarNo(tyre.getCarNo());
installQuery.setType("0"); // 装车
RecordTyreInstall lastInstall = recordTyreInstallMapper.selectRecordTyreInstallStart(installQuery);
if (lastInstall != null) {
// 查找该车辆最新的维保记录 (获取当前里程快照)
BizMaintenanceOrder orderQuery = new BizMaintenanceOrder();
orderQuery.setPlateNumber(tyre.getCarNo());
// 后台列表查询按时间倒序
List<BizMaintenanceOrder> orders = bizMaintenanceOrderMapper.selectBizMaintenanceOrderList(orderQuery);
if (orders != null && !orders.isEmpty()) {
BizMaintenanceOrder latestOrder = orders.get(0);
if (latestOrder.getInputMileage() != null) {
long currentCarMileage = latestOrder.getInputMileage().longValue();
if (currentCarMileage > lastInstall.getMileage()) {
onCarMileage = currentCarMileage - lastInstall.getMileage();
}
}
}
}
}
result.put("settledMileage", settledMileage);
result.put("onCarMileage", onCarMileage);
result.put("totalMileage", settledMileage + onCarMileage);
// 3. 获取历史明细
RecordTyreMileage mileageQuery = new RecordTyreMileage();
mileageQuery.setTyreRfid(tyreRfid);
List<RecordTyreMileage> details = recordTyreMileageMapper.selectRecordTyreMileageList(mileageQuery);
result.put("mileageDetails", details);
return result;
}
} }

@ -165,11 +165,19 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
* *
*/ */
long between = calculateMileageDifference(recordTyreInstall.getMileage(), start.getMileage()); long between = calculateMileageDifference(recordTyreInstall.getMileage(), start.getMileage());
// 获取该轮胎的历史累计里程
Long totalMileage = recordTyreMileageMapper.selectTotalMileageByTyreRfid(recordTyreInstall.getTyreRfid());
if (totalMileage == null) {
totalMileage = 0L;
}
RecordTyreMileage recordTyreMileage =new RecordTyreMileage(); RecordTyreMileage recordTyreMileage =new RecordTyreMileage();
recordTyreMileage.setTyreRfid(recordTyreInstall.getTyreRfid()); recordTyreMileage.setTyreRfid(recordTyreInstall.getTyreRfid());
recordTyreMileage.setStartTime(start.getCreateTime()); recordTyreMileage.setStartTime(start.getCreateTime());
recordTyreMileage.setEndTime(DateUtils.getNowDate()); recordTyreMileage.setEndTime(DateUtils.getNowDate());
recordTyreMileage.setMileage(between); recordTyreMileage.setMileage(totalMileage + between); // 当前累计总里程
recordTyreMileage.setMileageOld(between); // 本段行驶里程
recordTyreMileage.setCreateTime(DateUtils.getNowDate()); recordTyreMileage.setCreateTime(DateUtils.getNowDate());
recordTyreMileage.setCreateBy(recordTyreInstall.getCreateBy()); recordTyreMileage.setCreateBy(recordTyreInstall.getCreateBy());
recordTyreMileage.setRecordId(recordId); recordTyreMileage.setRecordId(recordId);

@ -10,6 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="startTime" column="start_time" /> <result property="startTime" column="start_time" />
<result property="endTime" column="end_time" /> <result property="endTime" column="end_time" />
<result property="mileage" column="mileage" /> <result property="mileage" column="mileage" />
<result property="mileageOld" column="mileage_old" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
@ -23,10 +24,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectRecordTyreMileageVo"> <sql id="selectRecordTyreMileageVo">
select id, tyre_rfid, start_time, end_time, mileage, mileage_old, pattern_depth, create_by, create_time, update_by, update_time, remark from record_tyre_mileage
select id, tyre_rfid, start_time, end_time, mileage, pattern_depth, plate_number, record_id, create_by, create_time, update_by, update_time, remark from record_tyre_mileage select id, tyre_rfid, start_time, end_time, mileage, pattern_depth, plate_number, record_id, create_by, create_time, update_by, update_time, remark from record_tyre_mileage
</sql> </sql>
<select id="selectRecordTyreMileageList" parameterType="RecordTyreMileage" resultMap="RecordTyreMileageResult"> <select id="selectRecordTyreMileageList" parameterType="RecordTyreMileage" resultMap="RecordTyreMileageResult">
select rtm.id, rtm.tyre_rfid, rtm.start_time, rtm.end_time, rtm.mileage, rtm.mileage_old, rtm.pattern_depth,
rtm.create_by, rtm.create_time, rtm.update_by, rtm.update_time, rtm.remark,bt.tyre_brand,bt.tyre_no
select rtm.id, rtm.tyre_rfid, rtm.start_time, rtm.end_time, rtm.mileage, rtm.pattern_depth, select rtm.id, rtm.tyre_rfid, rtm.start_time, rtm.end_time, rtm.mileage, rtm.pattern_depth,
rtm.create_by, rtm.create_time, rtm.update_by, rtm.update_time, rtm.remark, rtm.plate_number, rtm.record_id, bt.tyre_brand, bt.tyre_no rtm.create_by, rtm.create_time, rtm.update_by, rtm.update_time, rtm.remark, rtm.plate_number, rtm.record_id, bt.tyre_brand, bt.tyre_no
from record_tyre_mileage rtm from record_tyre_mileage rtm
@ -54,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="startTime != null ">start_time,</if> <if test="startTime != null ">start_time,</if>
<if test="endTime != null ">end_time,</if> <if test="endTime != null ">end_time,</if>
<if test="mileage != null ">mileage,</if> <if test="mileage != null ">mileage,</if>
<if test="mileageOld != null ">mileage_old,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="createTime != null ">create_time,</if> <if test="createTime != null ">create_time,</if>
<if test="updateBy != null and updateBy != ''">update_by,</if> <if test="updateBy != null and updateBy != ''">update_by,</if>
@ -69,6 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="startTime != null ">#{startTime},</if> <if test="startTime != null ">#{startTime},</if>
<if test="endTime != null ">#{endTime},</if> <if test="endTime != null ">#{endTime},</if>
<if test="mileage != null ">#{mileage},</if> <if test="mileage != null ">#{mileage},</if>
<if test="mileageOld != null ">#{mileageOld},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="createTime != null ">#{createTime},</if> <if test="createTime != null ">#{createTime},</if>
<if test="updateBy != null and updateBy != ''">#{updateBy},</if> <if test="updateBy != null and updateBy != ''">#{updateBy},</if>
@ -87,6 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="startTime != null ">start_time = #{startTime},</if> <if test="startTime != null ">start_time = #{startTime},</if>
<if test="endTime != null ">end_time = #{endTime},</if> <if test="endTime != null ">end_time = #{endTime},</if>
<if test="mileage != null ">mileage = #{mileage},</if> <if test="mileage != null ">mileage = #{mileage},</if>
<if test="mileageOld != null ">mileage_old = #{mileageOld},</if>
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if> <if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
<if test="createTime != null ">create_time = #{createTime},</if> <if test="createTime != null ">create_time = #{createTime},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
@ -109,4 +116,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
</delete> </delete>
<select id="selectTotalMileageByTyreRfid" parameterType="String" resultType="Long">
select COALESCE(SUM(mileage_old), 0) from record_tyre_mileage where tyre_rfid = #{tyreRfid}
</select>
</mapper> </mapper>

Loading…
Cancel
Save