feat: 里程插入

master
wanghao 5 hours ago
parent fc7664bf34
commit 1940761386

@ -201,7 +201,8 @@ public class BizMaintenanceOrderController extends BaseController
bizMaintenanceOrder.setOrderNo(orderNo);
return toAjax(bizMaintenanceOrderService.insertBizMaintenanceOrder(bizMaintenanceOrder));
}
@Autowired
private IRecordTyreMileageService recordTyreMileageService;
/**
* PDA
* @param json
@ -232,6 +233,17 @@ public class BizMaintenanceOrderController extends BaseController
for (BizOrderTireDetail bizOrderTireDetail : bizMaintenanceOrder.getTireDetails()){
bizOrderTireDetail.setCreateTime(DateUtils.getNowDate());
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);
}

@ -3,6 +3,7 @@ package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.RecordTyreMileage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -68,4 +69,6 @@ public interface RecordTyreMileageMapper
* @return
*/
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.text.Convert;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.BaseTyre;
import com.ruoyi.system.domain.RecordTyreInstall;
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.RecordTyreMileageMapper;
import com.ruoyi.system.service.IRecordTyreInstallService;
import com.ruoyi.system.service.IRecordTyreMileageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -20,13 +20,12 @@ import java.util.UUID;
/**
* Service
*
*
* @author dhl
* @date 2025-12-20
*/
@Service
public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
{
public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService {
@Autowired
private RecordTyreInstallMapper recordTyreInstallMapper;
@Autowired
@ -34,53 +33,56 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
@Autowired
private RecordTyreMileageMapper recordTyreMileageMapper;
@Autowired
private IRecordTyreMileageService recordTyreMileageService;
public static long calculateMileageDifference(long endMileage, long startMileage) {
return Math.abs(endMileage - startMileage);
}
/**
*
*
*
* @param id ID
* @return
*/
@Override
public RecordTyreInstall selectRecordTyreInstallById(Long id)
{
public RecordTyreInstall selectRecordTyreInstallById(Long id) {
return recordTyreInstallMapper.selectRecordTyreInstallById(id);
}
/**
*
*
*
* @param recordTyreInstall
* @return
*/
@Override
@DataScope(deptAlias = "bt", userAlias = "u")
public List<RecordTyreInstall> selectRecordTyreInstallList(RecordTyreInstall recordTyreInstall)
{
public List<RecordTyreInstall> selectRecordTyreInstallList(RecordTyreInstall recordTyreInstall) {
return recordTyreInstallMapper.selectRecordTyreInstallList(recordTyreInstall);
}
/**
*
*
*
* @param recordTyreInstall
* @return
*/
@Override
public int insertRecordTyreInstall(RecordTyreInstall recordTyreInstall)
{
public int insertRecordTyreInstall(RecordTyreInstall recordTyreInstall) {
recordTyreInstall.setCreateTime(DateUtils.getNowDate());
return recordTyreInstallMapper.insertRecordTyreInstall(recordTyreInstall);
}
/**
*
*
*
* @param recordTyreInstall
* @return
*/
@Override
public int updateRecordTyreInstall(RecordTyreInstall recordTyreInstall)
{
public int updateRecordTyreInstall(RecordTyreInstall recordTyreInstall) {
recordTyreInstall.setUpdateTime(DateUtils.getNowDate());
return recordTyreInstallMapper.updateRecordTyreInstall(recordTyreInstall);
@ -88,24 +90,22 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
/**
*
*
*
* @param ids ID
* @return
*/
@Override
public int deleteRecordTyreInstallByIds(String ids)
{
public int deleteRecordTyreInstallByIds(String ids) {
return recordTyreInstallMapper.deleteRecordTyreInstallByIds(Convert.toStrArray(ids));
}
/**
*
*
*
* @param id ID
* @return
*/
public int deleteRecordTyreInstallById(Long id)
{
public int deleteRecordTyreInstallById(Long id) {
return recordTyreInstallMapper.deleteRecordTyreInstallById(id);
}
@ -126,26 +126,16 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
baseTyre.setSelfNo(recordTyreInstall.getSelfNo());
baseTyre.setTyreNo(recordTyreInstall.getTyreNo());
int m = baseTyreMapper.updateBaseTyre(baseTyre);
if (n>0&&m>0){
if (n > 0 && m > 0) {
// 装车时插入一条里程快照记录段里程为0仅记录装车时刻的累计总里程
Long totalMileage = recordTyreMileageMapper.selectTotalMileageByTyreRfid(recordTyreInstall.getTyreRfid());
if (totalMileage == null) {
totalMileage = 0L;
}
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);
recordTyreMileageService.funInsertTyreMileage("装胎", recordTyreInstall.getMileage(),
recordTyreInstall.getPatternDepth(),
recordTyreInstall.getTyreRfid(),
recordTyreInstall.getCarNo(), recordTyreInstall.getCreateBy());
return AjaxResult.success("安装成功!");
}
}catch (Exception e){
} catch (Exception e) {
return AjaxResult.error(e.getMessage());
}
return AjaxResult.error("安装失败!");
@ -164,7 +154,7 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
BaseTyre baseTyre = new BaseTyre();
baseTyre.setTyreEpc(recordTyreInstall.getTyreRfid());
baseTyre = baseTyreMapper.selectBaseTyreByEpc(baseTyre);
if (baseTyre.getCarNo().isEmpty()){
if (baseTyre.getCarNo().isEmpty()) {
return AjaxResult.error("该轮胎未安装!");
}
baseTyre.setCarNo("");
@ -176,19 +166,19 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
start.setType("0");
start.setCarNo(recordTyreInstall.getCarNo());
start.setTyreRfid(recordTyreInstall.getTyreRfid());
start=recordTyreInstallMapper.selectRecordTyreInstallStart(start);
/**
start = recordTyreInstallMapper.selectRecordTyreInstallStart(start);
/* *//**
*
*/
*//*
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.setStartTime(start.getCreateTime());
recordTyreMileage.setEndTime(DateUtils.getNowDate());
@ -201,19 +191,18 @@ public class RecordTyreInstallServiceImpl implements IRecordTyreInstallService
recordTyreMileage.setRecordId(recordId);
// 车牌号按卸胎当下车辆归属写入里程快照,避免轮胎后续换车后历史里程记录无法追溯车辆。
// recordTyreMileage.setPlateNumber(recordTyreInstall.getCarNo());
recordTyreMileageMapper.insertRecordTyreMileage(recordTyreMileage);
if (n>0&&m>0){
recordTyreMileageMapper.insertRecordTyreMileage(recordTyreMileage);*/
if (n > 0 && m > 0) {
recordTyreMileageService.funInsertTyreMileage("卸胎", recordTyreInstall.getMileage(),
recordTyreInstall.getPatternDepth(),
recordTyreInstall.getTyreRfid(), recordTyreInstall.getCarNo(), recordTyreInstall.getCreateBy());
return AjaxResult.success("卸胎成功!");
}
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.error(e.getMessage());
}
return AjaxResult.error("卸胎失败!");
}
public static long calculateMileageDifference(long endMileage, long startMileage) {
return Math.abs(endMileage - startMileage);
}
}

@ -13,63 +13,58 @@ import java.util.List;
/**
* Service
*
*
* @author dhl
* @date 2025-12-21
*/
@Service
public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService
{
public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService {
@Autowired
private RecordTyreMileageMapper recordTyreMileageMapper;
/**
*
*
*
* @param id ID
* @return
*/
@Override
public RecordTyreMileage selectRecordTyreMileageById(Long id)
{
public RecordTyreMileage selectRecordTyreMileageById(Long id) {
return recordTyreMileageMapper.selectRecordTyreMileageById(id);
}
/**
*
*
*
* @param recordTyreMileage
* @return
*/
@Override
@DataScope(deptAlias = "bt", userAlias = "u")
public List<RecordTyreMileage> selectRecordTyreMileageList(RecordTyreMileage recordTyreMileage)
{
public List<RecordTyreMileage> selectRecordTyreMileageList(RecordTyreMileage recordTyreMileage) {
return recordTyreMileageMapper.selectRecordTyreMileageList(recordTyreMileage);
}
/**
*
*
*
* @param recordTyreMileage
* @return
*/
@Override
public int insertRecordTyreMileage(RecordTyreMileage recordTyreMileage)
{
public int insertRecordTyreMileage(RecordTyreMileage recordTyreMileage) {
recordTyreMileage.setCreateTime(DateUtils.getNowDate());
return recordTyreMileageMapper.insertRecordTyreMileage(recordTyreMileage);
}
/**
*
*
*
* @param recordTyreMileage
* @return
*/
@Override
public int updateRecordTyreMileage(RecordTyreMileage recordTyreMileage)
{
public int updateRecordTyreMileage(RecordTyreMileage recordTyreMileage) {
recordTyreMileage.setUpdateTime(DateUtils.getNowDate());
return recordTyreMileageMapper.updateRecordTyreMileage(recordTyreMileage);
@ -77,24 +72,51 @@ public class RecordTyreMileageServiceImpl implements IRecordTyreMileageService
/**
*
*
*
* @param ids ID
* @return
*/
@Override
public int deleteRecordTyreMileageByIds(String ids)
{
public int deleteRecordTyreMileageByIds(String ids) {
return recordTyreMileageMapper.deleteRecordTyreMileageByIds(Convert.toStrArray(ids));
}
/**
*
*
*
* @param id ID
* @return
*/
public int deleteRecordTyreMileageById(Long id)
{
public int deleteRecordTyreMileageById(Long 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 COALESCE(SUM(mileage_old), 0) from record_tyre_mileage where tyre_rfid = #{tyreRfid}
</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>

Loading…
Cancel
Save