feat: 里程插入

master
wanghao 1 day ago
parent fc7664bf34
commit 1940761386

@ -201,7 +201,8 @@ public class BizMaintenanceOrderController extends BaseController
bizMaintenanceOrder.setOrderNo(orderNo); bizMaintenanceOrder.setOrderNo(orderNo);
return toAjax(bizMaintenanceOrderService.insertBizMaintenanceOrder(bizMaintenanceOrder)); return toAjax(bizMaintenanceOrderService.insertBizMaintenanceOrder(bizMaintenanceOrder));
} }
@Autowired
private IRecordTyreMileageService recordTyreMileageService;
/** /**
* PDA * PDA
* @param json * @param json
@ -232,6 +233,17 @@ public class BizMaintenanceOrderController extends BaseController
for (BizOrderTireDetail bizOrderTireDetail : bizMaintenanceOrder.getTireDetails()){ for (BizOrderTireDetail bizOrderTireDetail : bizMaintenanceOrder.getTireDetails()){
bizOrderTireDetail.setCreateTime(DateUtils.getNowDate()); bizOrderTireDetail.setCreateTime(DateUtils.getNowDate());
bizOrderTireDetail.setOrderId(orderId); bizOrderTireDetail.setOrderId(orderId);
BaseTyre baseTyre = baseTyreService.selectBaseTyreById(bizOrderTireDetail.getTireId());
recordTyreMileageService.funInsertTyreMileage(
"保养",
order.getInputMileage().longValue(),
bizOrderTireDetail.getTreadDepth().toString(),
baseTyre.getTyreEpc(),
order.getPlateNumber(), null);
// 这里如果抛出异常,整个事务会回滚 // 这里如果抛出异常,整个事务会回滚
bizOrderTireDetailService.insertBizOrderTireDetail(bizOrderTireDetail); bizOrderTireDetailService.insertBizOrderTireDetail(bizOrderTireDetail);
} }

@ -3,6 +3,7 @@ package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.RecordTyreMileage; import com.ruoyi.system.domain.RecordTyreMileage;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -68,4 +69,6 @@ public interface RecordTyreMileageMapper
* @return * @return
*/ */
public Long selectTotalMileageByTyreRfid(String tyreRfid); public Long selectTotalMileageByTyreRfid(String tyreRfid);
RecordTyreMileage selectbyRFIDOrder(@Param("tyreRfid") String tyreRfid);
} }

@ -64,5 +64,5 @@ public interface IRecordTyreMileageService
void funInsertTyreMileage(String type, Long mileage, String patternDepth, String tyreRfid, String carNo,String createBy);
} }

@ -4,7 +4,6 @@ import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.BaseTyre; import com.ruoyi.system.domain.BaseTyre;
import com.ruoyi.system.domain.RecordTyreInstall; import com.ruoyi.system.domain.RecordTyreInstall;
import com.ruoyi.system.domain.RecordTyreMileage; import com.ruoyi.system.domain.RecordTyreMileage;
@ -12,6 +11,7 @@ import com.ruoyi.system.mapper.BaseTyreMapper;
import com.ruoyi.system.mapper.RecordTyreInstallMapper; import com.ruoyi.system.mapper.RecordTyreInstallMapper;
import com.ruoyi.system.mapper.RecordTyreMileageMapper; import com.ruoyi.system.mapper.RecordTyreMileageMapper;
import com.ruoyi.system.service.IRecordTyreInstallService; import com.ruoyi.system.service.IRecordTyreInstallService;
import com.ruoyi.system.service.IRecordTyreMileageService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -25,8 +25,7 @@ import java.util.UUID;
* @date 2025-12-20 * @date 2025-12-20
*/ */
@Service @Service
public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService {
{
@Autowired @Autowired
private RecordTyreInstallMapper recordTyreInstallMapper; private RecordTyreInstallMapper recordTyreInstallMapper;
@Autowired @Autowired
@ -34,6 +33,13 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
@Autowired @Autowired
private RecordTyreMileageMapper recordTyreMileageMapper; private RecordTyreMileageMapper recordTyreMileageMapper;
@Autowired
private IRecordTyreMileageService recordTyreMileageService;
public static long calculateMileageDifference(long endMileage, long startMileage) {
return Math.abs(endMileage - startMileage);
}
/** /**
* *
* *
@ -41,8 +47,7 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
* @return * @return
*/ */
@Override @Override
public RecordTyreInstall selectRecordTyreInstallById(Long id) public RecordTyreInstall selectRecordTyreInstallById(Long id) {
{
return recordTyreInstallMapper.selectRecordTyreInstallById(id); return recordTyreInstallMapper.selectRecordTyreInstallById(id);
} }
@ -54,8 +59,7 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
*/ */
@Override @Override
@DataScope(deptAlias = "bt", userAlias = "u") @DataScope(deptAlias = "bt", userAlias = "u")
public List<RecordTyreInstall> selectRecordTyreInstallList(RecordTyreInstall recordTyreInstall) public List<RecordTyreInstall> selectRecordTyreInstallList(RecordTyreInstall recordTyreInstall) {
{
return recordTyreInstallMapper.selectRecordTyreInstallList(recordTyreInstall); return recordTyreInstallMapper.selectRecordTyreInstallList(recordTyreInstall);
} }
@ -66,8 +70,7 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
* @return * @return
*/ */
@Override @Override
public int insertRecordTyreInstall(RecordTyreInstall recordTyreInstall) public int insertRecordTyreInstall(RecordTyreInstall recordTyreInstall) {
{
recordTyreInstall.setCreateTime(DateUtils.getNowDate()); recordTyreInstall.setCreateTime(DateUtils.getNowDate());
return recordTyreInstallMapper.insertRecordTyreInstall(recordTyreInstall); return recordTyreInstallMapper.insertRecordTyreInstall(recordTyreInstall);
} }
@ -79,8 +82,7 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
* @return * @return
*/ */
@Override @Override
public int updateRecordTyreInstall(RecordTyreInstall recordTyreInstall) public int updateRecordTyreInstall(RecordTyreInstall recordTyreInstall) {
{
recordTyreInstall.setUpdateTime(DateUtils.getNowDate()); recordTyreInstall.setUpdateTime(DateUtils.getNowDate());
return recordTyreInstallMapper.updateRecordTyreInstall(recordTyreInstall); return recordTyreInstallMapper.updateRecordTyreInstall(recordTyreInstall);
@ -93,8 +95,7 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
* @return * @return
*/ */
@Override @Override
public int deleteRecordTyreInstallByIds(String ids) public int deleteRecordTyreInstallByIds(String ids) {
{
return recordTyreInstallMapper.deleteRecordTyreInstallByIds(Convert.toStrArray(ids)); return recordTyreInstallMapper.deleteRecordTyreInstallByIds(Convert.toStrArray(ids));
} }
@ -104,8 +105,7 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
* @param id ID * @param id ID
* @return * @return
*/ */
public int deleteRecordTyreInstallById(Long id) public int deleteRecordTyreInstallById(Long id) {
{
return recordTyreInstallMapper.deleteRecordTyreInstallById(id); return recordTyreInstallMapper.deleteRecordTyreInstallById(id);
} }
@ -126,26 +126,16 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
baseTyre.setSelfNo(recordTyreInstall.getSelfNo()); baseTyre.setSelfNo(recordTyreInstall.getSelfNo());
baseTyre.setTyreNo(recordTyreInstall.getTyreNo()); baseTyre.setTyreNo(recordTyreInstall.getTyreNo());
int m = baseTyreMapper.updateBaseTyre(baseTyre); int m = baseTyreMapper.updateBaseTyre(baseTyre);
if (n>0&&m>0){ if (n > 0 && m > 0) {
// 装车时插入一条里程快照记录段里程为0仅记录装车时刻的累计总里程 // 装车时插入一条里程快照记录段里程为0仅记录装车时刻的累计总里程
Long totalMileage = recordTyreMileageMapper.selectTotalMileageByTyreRfid(recordTyreInstall.getTyreRfid()); recordTyreMileageService.funInsertTyreMileage("装胎", recordTyreInstall.getMileage(),
if (totalMileage == null) { recordTyreInstall.getPatternDepth(),
totalMileage = 0L; recordTyreInstall.getTyreRfid(),
} recordTyreInstall.getCarNo(), recordTyreInstall.getCreateBy());
RecordTyreMileage recordTyreMileage = new RecordTyreMileage();
recordTyreMileage.setTyreRfid(recordTyreInstall.getTyreRfid());
recordTyreMileage.setStartTime(DateUtils.getNowDate());
recordTyreMileage.setMileage(totalMileage); // 装车时累计总里程不变
recordTyreMileage.setMileageOld(0L); // 装车操作本身不产生行驶里程
recordTyreMileage.setPlateNumber(recordTyreInstall.getCarNo());
recordTyreMileage.setPatternDepth(recordTyreInstall.getPatternDepth());
recordTyreMileage.setRecordType("install"); // 标记为装车记录
recordTyreMileage.setCreateTime(DateUtils.getNowDate());
recordTyreMileage.setCreateBy(recordTyreInstall.getCreateBy());
recordTyreMileageMapper.insertRecordTyreMileage(recordTyreMileage);
return AjaxResult.success("安装成功!"); return AjaxResult.success("安装成功!");
} }
}catch (Exception e){ } catch (Exception e) {
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());
} }
return AjaxResult.error("安装失败!"); return AjaxResult.error("安装失败!");
@ -164,7 +154,7 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
BaseTyre baseTyre = new BaseTyre(); BaseTyre baseTyre = new BaseTyre();
baseTyre.setTyreEpc(recordTyreInstall.getTyreRfid()); baseTyre.setTyreEpc(recordTyreInstall.getTyreRfid());
baseTyre = baseTyreMapper.selectBaseTyreByEpc(baseTyre); baseTyre = baseTyreMapper.selectBaseTyreByEpc(baseTyre);
if (baseTyre.getCarNo().isEmpty()){ if (baseTyre.getCarNo().isEmpty()) {
return AjaxResult.error("该轮胎未安装!"); return AjaxResult.error("该轮胎未安装!");
} }
baseTyre.setCarNo(""); baseTyre.setCarNo("");
@ -176,10 +166,10 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
start.setType("0"); start.setType("0");
start.setCarNo(recordTyreInstall.getCarNo()); start.setCarNo(recordTyreInstall.getCarNo());
start.setTyreRfid(recordTyreInstall.getTyreRfid()); start.setTyreRfid(recordTyreInstall.getTyreRfid());
start=recordTyreInstallMapper.selectRecordTyreInstallStart(start); start = recordTyreInstallMapper.selectRecordTyreInstallStart(start);
/** /* *//**
* *
*/ *//*
long between = calculateMileageDifference(recordTyreInstall.getMileage(), start.getMileage()); long between = calculateMileageDifference(recordTyreInstall.getMileage(), start.getMileage());
// 获取该轮胎的历史累计里程 // 获取该轮胎的历史累计里程
@ -188,7 +178,7 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
totalMileage = 0L; 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());
@ -201,19 +191,18 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
recordTyreMileage.setRecordId(recordId); recordTyreMileage.setRecordId(recordId);
// 车牌号按卸胎当下车辆归属写入里程快照,避免轮胎后续换车后历史里程记录无法追溯车辆。 // 车牌号按卸胎当下车辆归属写入里程快照,避免轮胎后续换车后历史里程记录无法追溯车辆。
// recordTyreMileage.setPlateNumber(recordTyreInstall.getCarNo()); // recordTyreMileage.setPlateNumber(recordTyreInstall.getCarNo());
recordTyreMileageMapper.insertRecordTyreMileage(recordTyreMileage); recordTyreMileageMapper.insertRecordTyreMileage(recordTyreMileage);*/
if (n>0&&m>0){ if (n > 0 && m > 0) {
recordTyreMileageService.funInsertTyreMileage("卸胎", recordTyreInstall.getMileage(),
recordTyreInstall.getPatternDepth(),
recordTyreInstall.getTyreRfid(), recordTyreInstall.getCarNo(), recordTyreInstall.getCreateBy());
return AjaxResult.success("卸胎成功!"); return AjaxResult.success("卸胎成功!");
} }
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());
} }
return AjaxResult.error("卸胎失败!"); return AjaxResult.error("卸胎失败!");
} }
public static long calculateMileageDifference(long endMileage, long startMileage) {
return Math.abs(endMileage - startMileage);
}
} }

@ -18,8 +18,7 @@ import java.util.List;
* @date 2025-12-21 * @date 2025-12-21
*/ */
@Service @Service
public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService {
{
@Autowired @Autowired
private RecordTyreMileageMapper recordTyreMileageMapper; private RecordTyreMileageMapper recordTyreMileageMapper;
@ -30,8 +29,7 @@ public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService
* @return * @return
*/ */
@Override @Override
public RecordTyreMileage selectRecordTyreMileageById(Long id) public RecordTyreMileage selectRecordTyreMileageById(Long id) {
{
return recordTyreMileageMapper.selectRecordTyreMileageById(id); return recordTyreMileageMapper.selectRecordTyreMileageById(id);
} }
@ -43,8 +41,7 @@ public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService
*/ */
@Override @Override
@DataScope(deptAlias = "bt", userAlias = "u") @DataScope(deptAlias = "bt", userAlias = "u")
public List<RecordTyreMileage> selectRecordTyreMileageList(RecordTyreMileage recordTyreMileage) public List<RecordTyreMileage> selectRecordTyreMileageList(RecordTyreMileage recordTyreMileage) {
{
return recordTyreMileageMapper.selectRecordTyreMileageList(recordTyreMileage); return recordTyreMileageMapper.selectRecordTyreMileageList(recordTyreMileage);
} }
@ -55,8 +52,7 @@ public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService
* @return * @return
*/ */
@Override @Override
public int insertRecordTyreMileage(RecordTyreMileage recordTyreMileage) public int insertRecordTyreMileage(RecordTyreMileage recordTyreMileage) {
{
recordTyreMileage.setCreateTime(DateUtils.getNowDate()); recordTyreMileage.setCreateTime(DateUtils.getNowDate());
return recordTyreMileageMapper.insertRecordTyreMileage(recordTyreMileage); return recordTyreMileageMapper.insertRecordTyreMileage(recordTyreMileage);
} }
@ -68,8 +64,7 @@ public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService
* @return * @return
*/ */
@Override @Override
public int updateRecordTyreMileage(RecordTyreMileage recordTyreMileage) public int updateRecordTyreMileage(RecordTyreMileage recordTyreMileage) {
{
recordTyreMileage.setUpdateTime(DateUtils.getNowDate()); recordTyreMileage.setUpdateTime(DateUtils.getNowDate());
return recordTyreMileageMapper.updateRecordTyreMileage(recordTyreMileage); return recordTyreMileageMapper.updateRecordTyreMileage(recordTyreMileage);
@ -82,8 +77,7 @@ public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService
* @return * @return
*/ */
@Override @Override
public int deleteRecordTyreMileageByIds(String ids) public int deleteRecordTyreMileageByIds(String ids) {
{
return recordTyreMileageMapper.deleteRecordTyreMileageByIds(Convert.toStrArray(ids)); return recordTyreMileageMapper.deleteRecordTyreMileageByIds(Convert.toStrArray(ids));
} }
@ -93,8 +87,36 @@ public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService
* @param id ID * @param id ID
* @return * @return
*/ */
public int deleteRecordTyreMileageById(Long id) public int deleteRecordTyreMileageById(Long id) {
{
return recordTyreMileageMapper.deleteRecordTyreMileageById(id); return recordTyreMileageMapper.deleteRecordTyreMileageById(id);
} }
@Override
public void funInsertTyreMileage(String type, Long mileage, String patternDepth, String tyreRfid, String carNo, String createBy) {
RecordTyreMileage recordTyreMileage = new RecordTyreMileage();
recordTyreMileage.setTyreRfid(tyreRfid);
recordTyreMileage.setStartTime(DateUtils.getNowDate());
recordTyreMileage.setPlateNumber(carNo);//车牌
recordTyreMileage.setPatternDepth(patternDepth);
recordTyreMileage.setRecordType(type);
recordTyreMileage.setCreateTime(DateUtils.getNowDate());
recordTyreMileage.setCreateBy(createBy);
recordTyreMileage.setMileageOld(mileage);
if (type.equals("装胎")) {
recordTyreMileage.setMileage(0L);
} else {
// 查询上一条记录的里程值
RecordTyreMileage recordTyreMileageOld = recordTyreMileageMapper.selectbyRFIDOrder(tyreRfid);
Long mileageOld = 0L;
if (recordTyreMileageOld != null) {
mileageOld = recordTyreMileageOld.getMileageOld();
}
recordTyreMileage.setMileage(mileage-mileageOld);
}
recordTyreMileageMapper.insertRecordTyreMileage(recordTyreMileage);
}
} }

@ -125,5 +125,10 @@
<select id="selectTotalMileageByTyreRfid" parameterType="String" resultType="Long"> <select id="selectTotalMileageByTyreRfid" parameterType="String" resultType="Long">
select COALESCE(SUM(mileage_old), 0) from record_tyre_mileage where tyre_rfid = #{tyreRfid} select COALESCE(SUM(mileage_old), 0) from record_tyre_mileage where tyre_rfid = #{tyreRfid}
</select> </select>
<select id="selectbyRFIDOrder" resultMap="RecordTyreMileageResult">
select tyre_rfid, record_type, mileage_old
from record_tyre_mileage
where tyre_rfid=#{tyreRfid} and record_type !='卸胎'
order by create_time desc limit 1
</select>
</mapper> </mapper>

Loading…
Cancel
Save