diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BizMaintenanceOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BizMaintenanceOrderController.java index b20039f7..9d94f450 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BizMaintenanceOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tyre/BizMaintenanceOrderController.java @@ -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); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordTyreMileageMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordTyreMileageMapper.java index 9b7a25c2..2f39fc94 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordTyreMileageMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RecordTyreMileageMapper.java @@ -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); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IRecordTyreMileageService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IRecordTyreMileageService.java index 5264121a..0bed0b25 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/IRecordTyreMileageService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IRecordTyreMileageService.java @@ -64,5 +64,5 @@ public interface IRecordTyreMileageService - + void funInsertTyreMileage(String type, Long mileage, String patternDepth, String tyreRfid, String carNo,String createBy); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordTyreInstallServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordTyreInstallServiceImpl.java index 69a9f6d2..9865d7bd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordTyreInstallServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordTyreInstallServiceImpl.java @@ -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 selectRecordTyreInstallList(RecordTyreInstall recordTyreInstall) - { + public List 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); - } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordTyreMileageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordTyreMileageServiceImpl.java index fd1a0f86..635b54ca 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordTyreMileageServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordTyreMileageServiceImpl.java @@ -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 selectRecordTyreMileageList(RecordTyreMileage recordTyreMileage) - { + public List 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); + + } } diff --git a/ruoyi-system/src/main/resources/mapper/tyre/RecordTyreMileageMapper.xml b/ruoyi-system/src/main/resources/mapper/tyre/RecordTyreMileageMapper.xml index a9e09cf5..39b7b895 100644 --- a/ruoyi-system/src/main/resources/mapper/tyre/RecordTyreMileageMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/tyre/RecordTyreMileageMapper.xml @@ -125,5 +125,10 @@ - +