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/device/service/impl/DeviceRepairServiceImpl.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 105 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java
index e3ebb0e..8af7912 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java
@@ -21,7 +21,9 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.measuringinstrumentledger.mapper.SparePartsMapper;
import com.ruoyi.measuringinstrumentledger.pojo.SpareParts;
+import com.ruoyi.measuringinstrumentledger.pojo.SparePartsRecord;
import com.ruoyi.measuringinstrumentledger.pojo.SparePartsRequisitionRecord;
+import com.ruoyi.measuringinstrumentledger.service.SparePartsRecordService;
import com.ruoyi.measuringinstrumentledger.service.SparePartsRequisitionRecordService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
@@ -45,7 +47,13 @@
private final IDeviceLedgerService deviceLedgerService;
private final SparePartsMapper sparePartsMapper;
private final SparePartsRequisitionRecordService sparePartsRequisitionRecordService;
+ private final SparePartsRecordService sparePartsRecordService;
private final FileUtil fileUtil;
+
+ private static final int STATUS_PENDING_REPAIR = 0;
+ private static final int STATUS_COMPLETED = 1;
+ private static final int STATUS_FAILED = 2;
+ private static final int STATUS_PENDING_ACCEPTANCE = 3;
@Override
public IPage<DeviceRepairVo> queryPage(Page page, DeviceRepairDto deviceRepairDto) {
@@ -62,6 +70,9 @@
DeviceLedger byId = deviceLedgerService.getById(deviceRepairDto.getDeviceLedgerId());
deviceRepairDto.setDeviceName(byId.getDeviceName());
deviceRepairDto.setDeviceModel(byId.getDeviceModel());
+ if (deviceRepairDto.getStatus() == null) {
+ deviceRepairDto.setStatus(STATUS_PENDING_REPAIR);
+ }
boolean save = this.save(deviceRepairDto);
if (save) {
// 澶勭悊鍥剧墖涓婁紶
@@ -75,6 +86,15 @@
@Transactional(rollbackFor = Exception.class)
public AjaxResult updateDeviceRepair(DeviceRepairDto deviceRepairDto) {
DeviceRepair oldDeviceRepair = this.getById(deviceRepairDto.getId());
+ if (oldDeviceRepair == null) {
+ return AjaxResult.error("鎶ヤ慨璁板綍涓嶅瓨鍦�");
+ }
+ if (deviceRepairDto.getStatus() != null
+ && deviceRepairDto.getStatus() == STATUS_COMPLETED
+ && (oldDeviceRepair.getStatus() == null
+ || oldDeviceRepair.getStatus() != STATUS_COMPLETED)) {
+ return AjaxResult.error("璇峰厛鎻愪氦楠屾敹瀹℃壒锛岄獙鏀堕�氳繃鍚庢墠鍙畬缁�");
+ }
// 澶勭悊澶囦欢浣跨敤鎯呭喌
if (CollectionUtils.isNotEmpty(deviceRepairDto.getSparePartsUseList())) {
List<Long> sparePartIds = new ArrayList<>();
@@ -97,6 +117,17 @@
record.setSparePartsId(sparePartUse.getId());
record.setQuantity(sparePartUse.getQuantity());
sparePartsRequisitionRecordService.save(record);
+
+ // 杩藉姞澶囦欢鍑哄簱娴佹按锛�2 缁翠慨棰嗙敤锛�
+ SparePartsRecord outRecord = new SparePartsRecord();
+ outRecord.setSparePartsId(sparePartUse.getId());
+ outRecord.setDirection(2);
+ outRecord.setQuantity(new BigDecimal(sparePartUse.getQuantity()));
+ outRecord.setSourceType(2);
+ outRecord.setSourceId(deviceRepairDto.getId());
+ // 鎶ヤ慨鍗曟病鏈夊崟鍙凤紝鏉ユ簮鍗曞彿鐢ㄨ澶囧悕绉帮紝娴佹按椤垫墠鐪嬪緱鍑哄浠剁敤鍦ㄥ摢鍙拌澶囦笂
+ outRecord.setSourceNo(oldDeviceRepair.getDeviceName());
+ sparePartsRecordService.save(outRecord);
} else {
return AjaxResult.error("澶囦欢 " + spareParts.getName() + " 鏁伴噺涓嶈冻");
}
@@ -131,6 +162,58 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult confirmRepair(DeviceRepairDto deviceRepairDto) {
+ DeviceRepair oldDeviceRepair = this.getById(deviceRepairDto.getId());
+ if (oldDeviceRepair == null) {
+ return AjaxResult.error("鎶ヤ慨璁板綍涓嶅瓨鍦�");
+ }
+ if (oldDeviceRepair.getStatus() != null && oldDeviceRepair.getStatus() == STATUS_COMPLETED) {
+ return AjaxResult.error("璇ユ姤淇凡瀹岀粨锛屼笉鑳介噸澶嶇‘璁ょ淮淇�");
+ }
+ if (oldDeviceRepair.getStatus() != null && oldDeviceRepair.getStatus() == STATUS_PENDING_ACCEPTANCE) {
+ return AjaxResult.error("璇ユ姤淇凡鎻愪氦楠屾敹瀹℃壒");
+ }
+ deviceRepairDto.setStatus(STATUS_PENDING_ACCEPTANCE);
+ return updateDeviceRepair(deviceRepairDto);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult approveRepairAcceptance(DeviceRepairDto deviceRepairDto) {
+ if (deviceRepairDto.getId() == null) {
+ return AjaxResult.error("鎶ヤ慨璁板綍id涓嶈兘涓虹┖");
+ }
+ DeviceRepair oldDeviceRepair = this.getById(deviceRepairDto.getId());
+ if (oldDeviceRepair == null) {
+ return AjaxResult.error("鎶ヤ慨璁板綍涓嶅瓨鍦�");
+ }
+ if (oldDeviceRepair.getStatus() == null || oldDeviceRepair.getStatus() != STATUS_PENDING_ACCEPTANCE) {
+ return AjaxResult.error("璇ユ姤淇湭杩涘叆寰呴獙鏀剁姸鎬侊紝涓嶈兘瀹℃壒");
+ }
+ if (StringUtils.isBlank(deviceRepairDto.getAcceptanceName())) {
+ return AjaxResult.error("楠屾敹浜轰笉鑳戒负绌�");
+ }
+ if (deviceRepairDto.getAcceptanceTime() == null) {
+ return AjaxResult.error("楠屾敹鏃堕棿涓嶈兘涓虹┖");
+ }
+ if (StringUtils.isBlank(deviceRepairDto.getAcceptanceRemark())) {
+ return AjaxResult.error("楠屾敹澶囨敞涓嶈兘涓虹┖");
+ }
+
+ DeviceRepair update = new DeviceRepair();
+ update.setId(deviceRepairDto.getId());
+ update.setAcceptanceName(deviceRepairDto.getAcceptanceName());
+ update.setAcceptanceTime(deviceRepairDto.getAcceptanceTime());
+ update.setAcceptanceRemark(deviceRepairDto.getAcceptanceRemark());
+ update.setStatus(STATUS_COMPLETED);
+ if (this.updateById(update)) {
+ return AjaxResult.success();
+ }
+ return AjaxResult.error("楠屾敹瀹℃壒澶辫触");
+ }
+
+ @Override
public void export(HttpServletResponse response, Long[] ids) {
if (ids == null || ids.length == 0) {
List<DeviceRepair> supplierManageList = this.list();
@@ -138,24 +221,19 @@
supplierManageList.stream().forEach(deviceRepair -> {
DeviceRepairExeclDto deviceRepairExeclDto = new DeviceRepairExeclDto();
BeanUtils.copyProperties(deviceRepair,deviceRepairExeclDto);
- deviceRepairExeclDto.setStatusStr(deviceRepair.getStatus() == 0 ? "寰呯淮淇�" : deviceRepair.getStatus() == 1 ? "瀹岀粨" : "澶辫触");
-
+ deviceRepairExeclDto.setStatusStr(resolveStatusText(deviceRepair.getStatus()));
deviceLedgerExeclDtos.add(deviceRepairExeclDto);
});
ExcelUtil<DeviceRepairExeclDto> util = new ExcelUtil<DeviceRepairExeclDto>(DeviceRepairExeclDto.class);
util.exportExcel(response, deviceLedgerExeclDtos, "璁惧鎶ヤ慨瀵煎嚭");
}else {
- ArrayList<Long> arrayList = new ArrayList<>();
- Arrays.stream(ids).map(id -> {
- return arrayList.add( id);
- });
+ ArrayList<Long> arrayList = new ArrayList<>(Arrays.asList(ids));
List<DeviceRepair> supplierManageList = deviceRepairMapper.selectBatchIds(arrayList);
ArrayList<DeviceRepairExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
supplierManageList.stream().forEach(deviceRepair -> {
DeviceRepairExeclDto deviceRepairExeclDto = new DeviceRepairExeclDto();
BeanUtils.copyProperties(deviceRepair,deviceRepairExeclDto);
- deviceRepairExeclDto.setStatusStr(deviceRepair.getStatus() == 0 ? "寰呯淮淇�" : deviceRepair.getStatus() == 1 ? "瀹岀粨" : "澶辫触");
-
+ deviceRepairExeclDto.setStatusStr(resolveStatusText(deviceRepair.getStatus()));
deviceLedgerExeclDtos.add(deviceRepairExeclDto);
});
ExcelUtil<DeviceRepairExeclDto> util = new ExcelUtil<DeviceRepairExeclDto>(DeviceRepairExeclDto.class);
@@ -164,6 +242,25 @@
}
+ private String resolveStatusText(Integer status) {
+ if (status == null) {
+ return "";
+ }
+ if (status == STATUS_PENDING_REPAIR) {
+ return "寰呯淮淇�";
+ }
+ if (status == STATUS_COMPLETED) {
+ return "瀹岀粨";
+ }
+ if (status == STATUS_FAILED) {
+ return "澶辫触";
+ }
+ if (status == STATUS_PENDING_ACCEPTANCE) {
+ return "寰呴獙鏀�";
+ }
+ return "鏈煡";
+ }
+
@Override
public DeviceRepairVo detailById(Long id) {
DeviceRepairVo vo = deviceRepairMapper.detailById(id);
--
Gitblit v1.9.3