From 684e4306a08feeae188070f264148e6765da8dcf Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期日, 20 九月 2026 19:25:15 +0800
Subject: [PATCH] feat(account): 更新往来付款回款流水表及接口
---
src/main/java/com/ruoyi/basic/service/impl/TankInfoServiceImpl.java | 68 +++++++++++++++++++++++++++++++++-
1 files changed, 66 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/service/impl/TankInfoServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/TankInfoServiceImpl.java
index fa909e7..ece224e 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/TankInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/TankInfoServiceImpl.java
@@ -2,11 +2,14 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.enums.TankUsageTypeEnum;
import com.ruoyi.basic.mapper.TankInfoMapper;
import com.ruoyi.basic.pojo.TankInfo;
import com.ruoyi.basic.service.ITankInfoService;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.stereotype.Service;
@@ -21,19 +24,30 @@
@Service
public class TankInfoServiceImpl extends ServiceImpl<TankInfoMapper, TankInfo> implements ITankInfoService {
+ /**
+ * 鏄惁鍚敤锛氬惎鐢ㄣ�備笌 tank_info.is_enabled 鐨勯粯璁ゅ�间竴鑷�
+ */
+ private static final Integer TANK_ENABLED = 1;
+
@Override
public IPage<TankInfo> selectTankInfoList(Page<TankInfo> page, TankInfo tankInfo) {
LambdaQueryWrapper<TankInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(tankInfo.getTankNo()), TankInfo::getTankNo, tankInfo.getTankNo())
.like(StringUtils.isNotBlank(tankInfo.getCategory()), TankInfo::getCategory, tankInfo.getCategory())
+ .eq(tankInfo.getIsEnabled() != null, TankInfo::getIsEnabled, tankInfo.getIsEnabled())
+ .eq(tankInfo.getUsageType() != null, TankInfo::getUsageType, tankInfo.getUsageType())
.orderByAsc(TankInfo::getId);
return this.page(page, queryWrapper);
}
+ /**
+ * 涓嬫媺鐢細鍙繑鍥炲凡鍚敤鐨勫偍缃愩�傛湭鍚敤琛ㄧず杩樻病鎶曠敤锛屼笉搴旇鍏ュ簱绛変笟鍔¢�変腑
+ */
@Override
public List<TankInfo> selectAll() {
LambdaQueryWrapper<TankInfo> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.orderByAsc(TankInfo::getId);
+ queryWrapper.eq(TankInfo::getIsEnabled, TANK_ENABLED)
+ .orderByAsc(TankInfo::getId);
return this.list(queryWrapper);
}
@@ -44,12 +58,62 @@
@Override
public boolean insertTankInfo(TankInfo tankInfo) {
+ normalizeUsage(tankInfo);
return this.save(tankInfo);
}
@Override
public boolean updateTankInfo(TankInfo tankInfo) {
- return this.updateById(tankInfo);
+ if (tankInfo.getId() == null) {
+ throw new ServiceException("缂哄皯鍌ㄧ綈id");
+ }
+ normalizeUsage(tankInfo);
+ boolean updated = this.updateById(tankInfo);
+ if (updated) {
+ // usageType / tenantInfo 鏄厑璁歌娓呯┖鐨勶紝鑰� updateById 榛樿璺宠繃 null 瀛楁锛團ieldStrategy.NOT_NULL锛夛紝
+ // 娓呯┖鍔ㄤ綔鏍规湰鍐欎笉杩涘簱锛屾墍浠ヨ繖涓ゅ垪鍗曠嫭琛ヤ竴鏉℃洿鏂�
+ updated = this.update(Wrappers.<TankInfo>lambdaUpdate()
+ .eq(TankInfo::getId, tankInfo.getId())
+ .set(TankInfo::getUsageType, tankInfo.getUsageType())
+ .set(TankInfo::getTenantInfo, tankInfo.getTenantInfo()));
+ }
+ return updated;
+ }
+
+ /**
+ * 褰掍竴鍖栥�屾槸鍚﹀惎鐢� / 鐢ㄩ�� / 绉熷淇℃伅銆嶄笁鑰呯殑鍏崇郴锛�
+ * <ul>
+ * <li>鏈惎鐢細鐢ㄩ�斾笌绉熷淇℃伅涓�寰嬫竻绌� 鈥斺�� 鍚敤涔嬪悗鎵嶈皥绉熻祦/鑷敤</li>
+ * <li>鍚敤 + 绉熻祦锛氱瀹俊鎭繀濉�</li>
+ * <li>鍚敤 + 鑷敤锛氱瀹俊鎭竻绌�</li>
+ * <li>鍚敤 + 鐢ㄩ�斾负绌猴細瑙嗕负鏈�夋嫨锛屾棦涓嶆牎楠屼篃涓嶆竻绌恒�傝縼绉诲悗鐨勫瓨閲忓偍缃愬氨鏄繖涓姸鎬侊紝
+ * 杩欐牱鑰佸墠绔笉鏀逛篃涓嶄細琚嫤锛屾洿涓嶄細鎶婂凡鏈夌殑绉熷淇℃伅鎶规帀</li>
+ * </ul>
+ */
+ private void normalizeUsage(TankInfo tankInfo) {
+ if (tankInfo.getIsEnabled() == null) {
+ tankInfo.setIsEnabled(TANK_ENABLED);
+ }
+ if (!TANK_ENABLED.equals(tankInfo.getIsEnabled())) {
+ tankInfo.setUsageType(null);
+ tankInfo.setTenantInfo(null);
+ return;
+ }
+ Integer usageType = tankInfo.getUsageType();
+ if (usageType == null) {
+ return;
+ }
+ if (TankUsageTypeEnum.LEASE.getCode().equals(usageType)) {
+ if (StringUtils.isBlank(tankInfo.getTenantInfo())) {
+ throw new ServiceException("绉熻祦鐨勫偍缃愬繀椤诲~鍐欑瀹俊鎭�");
+ }
+ return;
+ }
+ if (TankUsageTypeEnum.SELF_USE.getCode().equals(usageType)) {
+ tankInfo.setTenantInfo(null);
+ return;
+ }
+ throw new ServiceException("鍌ㄧ綈鐢ㄩ�斿彧鑳芥槸绉熻祦鎴栬嚜鐢�");
}
@Override
--
Gitblit v1.9.3