From e973906d326d2c19da645368eb3808bf638887ae Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 14 五月 2026 18:01:02 +0800
Subject: [PATCH] feat(device): 添加设备报修验收审批功能
---
src/main/java/com/ruoyi/device/controller/DeviceRepairController.java | 10 +
src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java | 99 +++++++++++++-
src/main/resources/mapper/device/DeviceRepairMapper.xml | 14 +
src/main/java/com/ruoyi/device/pojo/DeviceRepair.java | 12 +
src/main/java/com/ruoyi/device/execl/DeviceRepairExeclDto.java | 12 +
src/main/java/com/ruoyi/device/service/IDeviceRepairService.java | 4
src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java | 1
src/main/resources/mapper/collaborativeApproval/SealApplicationManagementMapper.xml | 29 +++-
doc/前端联调文档-设备报修保养财务模块改造.md | 233 +++++++++++++++++++++++++++++++++
src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java | 4
10 files changed, 397 insertions(+), 21 deletions(-)
diff --git "a/doc/\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243-\350\256\276\345\244\207\346\212\245\344\277\256\344\277\235\345\205\273\350\264\242\345\212\241\346\250\241\345\235\227\346\224\271\351\200\240.md" "b/doc/\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243-\350\256\276\345\244\207\346\212\245\344\277\256\344\277\235\345\205\273\350\264\242\345\212\241\346\250\241\345\235\227\346\224\271\351\200\240.md"
new file mode 100644
index 0000000..43c468c
--- /dev/null
+++ "b/doc/\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243-\350\256\276\345\244\207\346\212\245\344\277\256\344\277\235\345\205\273\350\264\242\345\212\241\346\250\241\345\235\227\346\224\271\351\200\240.md"
@@ -0,0 +1,233 @@
+# 鍓嶇鑱旇皟鏂囨。锛堣澶囨姤淇� / 璁惧淇濆吇瀹氭椂浠诲姟 / 璐㈠姟绉戠洰鎬昏处锛�
+
+## 1. 鍙樻洿鑼冨洿
+
+鏈鑱旇皟娑夊強 3 涓ā鍧楋細
+
+1. 璐㈠姟妯″潡锛氱鐩�昏处鍘绘帀鍑瘉瀛楀彿銆佹憳瑕侊紝鍙繑鍥� 1 鏉″悎璁℃暟鎹��
+2. 璁惧淇濆吇瀹氭椂浠诲姟锛氭柊澧� `淇濆吇浜篳 瀛楁锛屽畾鏃朵换鍔$敓鎴愪繚鍏昏褰曟椂甯﹀叆銆�
+3. 璁惧鎶ヤ慨锛氱‘璁ゆ姤淇悗鏂板楠屾敹瀹℃壒锛岄獙鏀堕�氳繃鍚庢墠绠楀畬缁撱��
+
+---
+
+## 2. 鎺ュ彛娓呭崟
+
+### 2.1 璐㈠姟-绉戠洰鎬昏处
+
+- **GET** `/financial/ledger/general`
+- 璇存槑锛氳繑鍥炵鐩�昏处鍚堣锛屼粎 1 鏉¤褰曘��
+
+#### 璇锋眰鍙傛暟锛圦uery锛�
+
+| 鍙傛暟 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
+|---|---|---|---|
+| `subjectCode` | string | 鏄� | 绉戠洰缂栫爜 |
+| `startMonth` | string | 鏄� | 寮�濮嬫湀浠斤紝鏍煎紡 `YYYY-MM` |
+| `endMonth` | string | 鏄� | 缁撴潫鏈堜唤锛屾牸寮� `YYYY-MM` |
+
+#### 杩斿洖缁撴瀯
+
+`R<List<FinLedgerRowVo>>`
+
+```json
+{
+ "code": 200,
+ "msg": "鎿嶄綔鎴愬姛",
+ "data": [
+ {
+ "rowType": "yearly_total",
+ "date": "2026-05-31",
+ "debit": 12000.00,
+ "credit": 8000.00,
+ "direction": "鍊�",
+ "balance": 4000.00
+ }
+ ]
+}
+```
+
+#### 鑱旇皟娉ㄦ剰
+
+1. `data` 鍥哄畾鍙湁 1 鏉★紙鍚堣锛夈��
+2. `voucherNo`銆乣summary` 涓嶈繑鍥烇紙涓嶅啀灞曠ず鍑瘉瀛楀彿銆佹憳瑕侊級銆�
+
+---
+
+### 2.2 璁惧淇濆吇瀹氭椂浠诲姟锛堟柊澧炰繚鍏讳汉锛�
+
+- 鍩虹璺緞锛歚/deviceMaintenanceTask`
+- 鐩稿叧鎺ュ彛锛�
+ - **POST** `/add`
+ - **POST** `/update`
+ - **GET** `/listPage`
+
+#### 鏂板瀛楁
+
+| 瀛楁 | 绫诲瀷 | 璇存槑 |
+|---|---|---|
+| `maintenancePerson` | string | 淇濆吇浜� |
+
+#### 鏂板/鏇存柊璇锋眰绀轰緥
+
+```json
+{
+ "id": 1,
+ "taskName": "绌哄帇鏈轰繚鍏讳换鍔�",
+ "taskId": 1001,
+ "maintenancePerson": "寮犱笁",
+ "frequencyType": "MONTHLY",
+ "frequencyDetail": "10,09:00",
+ "remarks": "姣忔湀渚嬭淇濆吇"
+}
+```
+
+#### 瀹氭椂浠诲姟涓嬪彂琛屼负
+
+瀹氭椂浠诲姟鎵ц鍚庯紝绯荤粺鑷姩鍒涘缓淇濆吇璁板綍锛坄device_maintenance`锛夋椂浼氬啓鍏ワ細
+
+- `maintenanceActuallyName = maintenancePerson`
+
+鍗冲墠绔湪瀹氭椂浠诲姟閲岀淮鎶ょ殑淇濆吇浜猴紝浼氳嚜鍔ㄥ甫鍏ュ埌淇濆吇璁板綍銆�
+
+---
+
+### 2.3 璁惧鎶ヤ慨锛堢‘璁ゅ悗楠屾敹瀹℃壒锛�
+
+- 鍩虹璺緞锛歚/device/repair`
+
+#### 鐘舵�佸畾涔�
+
+| 鐘舵�佸�� | 鍚箟 |
+|---|---|
+| `0` | 寰呯淮淇� |
+| `3` | 寰呴獙鏀� |
+| `1` | 瀹岀粨 |
+| `2` | 澶辫触 |
+
+#### 2.3.1 缁翠慨纭锛堝師纭鎶ヤ慨锛�
+
+- **POST** `/device/repair/repair`
+- 璇存槑锛氭彁浜ゅ悗鐘舵�佷粠 `寰呯淮淇�(0)` 杩涘叆 `寰呴獙鏀�(3)`锛屼笉鍐嶇洿鎺ュ畬缁撱��
+
+璇锋眰绀轰緥锛�
+
+```json
+{
+ "id": 10001,
+ "maintenanceName": "鏉庡洓",
+ "maintenanceTime": "2026-05-14 10:30:00",
+ "maintenanceResult": "鏇存崲杞存壙骞惰瘯杩愯姝e父",
+ "sparePartsUseList": [
+ {
+ "id": 501,
+ "quantity": 2
+ }
+ ]
+}
+```
+
+甯歌澶辫触鎻愮ず锛堢敤浜庡墠绔脊绐楋級锛�
+
+- `鎶ヤ慨璁板綍涓嶅瓨鍦╜
+- `璇ユ姤淇凡瀹岀粨锛屼笉鑳介噸澶嶇‘璁ょ淮淇甡
+- `璇ユ姤淇凡鎻愪氦楠屾敹瀹℃壒`
+- `澶囦欢 xxx 鏁伴噺涓嶈冻`
+
+#### 2.3.2 楠屾敹瀹℃壒锛堟柊澧烇級
+
+- **POST** `/device/repair/acceptance`
+- 璇存槑锛氫粎 `寰呴獙鏀�(3)` 鍙鎵癸紱瀹℃壒閫氳繃鍚庣姸鎬佹敼涓� `瀹岀粨(1)`銆�
+
+璇锋眰鍙傛暟锛圔ody锛夛細
+
+| 瀛楁 | 绫诲瀷 | 蹇呭~ | 璇存槑 |
+|---|---|---|---|
+| `id` | long | 鏄� | 鎶ヤ慨璁板綍ID |
+| `acceptanceName` | string | 鏄� | 楠屾敹浜� |
+| `acceptanceTime` | string | 鏄� | 楠屾敹鏃堕棿锛屾牸寮� `yyyy-MM-dd HH:mm:ss` |
+| `acceptanceRemark` | string | 鏄� | 楠屾敹澶囨敞 |
+
+璇锋眰绀轰緥锛�
+
+```json
+{
+ "id": 10001,
+ "acceptanceName": "鐜嬩簲",
+ "acceptanceTime": "2026-05-14 11:00:00",
+ "acceptanceRemark": "缁翠慨椤规牳楠岄�氳繃锛岃澶囪繍琛屾甯�"
+}
+```
+
+甯歌澶辫触鎻愮ず锛�
+
+- `鎶ヤ慨璁板綍id涓嶈兘涓虹┖`
+- `鎶ヤ慨璁板綍涓嶅瓨鍦╜
+- `璇ユ姤淇湭杩涘叆寰呴獙鏀剁姸鎬侊紝涓嶈兘瀹℃壒`
+- `楠屾敹浜轰笉鑳戒负绌篳
+- `楠屾敹鏃堕棿涓嶈兘涓虹┖`
+- `楠屾敹澶囨敞涓嶈兘涓虹┖`
+
+#### 2.3.3 鏅�氭洿鏂版帴鍙i檺鍒�
+
+- **PUT** `/device/repair`
+- 闄愬埗锛氫笉鑳介�氳繃鏅�氭洿鏂扮洿鎺ユ妸鐘舵�佹敼鎴� `瀹岀粨(1)`锛堝繀椤昏蛋楠屾敹瀹℃壒鎺ュ彛锛夈��
+- 澶辫触鎻愮ず锛歚璇峰厛鎻愪氦楠屾敹瀹℃壒锛岄獙鏀堕�氳繃鍚庢墠鍙畬缁揱
+
+---
+
+## 3. 杩斿洖瀛楁鍙樻洿锛堟姤淇垪琛�/璇︽儏锛�
+
+浠ヤ笅鎺ュ彛杩斿洖宸叉柊澧為獙鏀跺瓧娈碉細
+
+- **GET** `/device/repair/page`
+- **GET** `/device/repair/{id}`
+
+鏂板杩斿洖瀛楁锛�
+
+| 瀛楁 | 绫诲瀷 | 璇存槑 |
+|---|---|---|
+| `acceptanceName` | string | 楠屾敹浜� |
+| `acceptanceTime` | string | 楠屾敹鏃堕棿 |
+| `acceptanceRemark` | string | 楠屾敹澶囨敞 |
+
+---
+
+## 4. 鍓嶇鏀归�犲缓璁�
+
+1. 鎶ヤ慨鍒楄〃澧炲姞鐘舵�佸�� `3=寰呴獙鏀禶 鐨勫睍绀烘枃妗堜笌绛涢�夐」銆�
+2. 鈥滅‘璁ょ淮淇�濇寜閽皟鐢� `/device/repair/repair`锛屾垚鍔熷悗鍒锋柊涓哄緟楠屾敹鐘舵�併��
+3. 鏂板鈥滈獙鏀跺鎵光�濆脊绐楋紝蹇呭~锛�
+ - 楠屾敹浜�
+ - 楠屾敹鏃堕棿
+ - 楠屾敹澶囨敞
+4. 绂佹鍦ㄦ櫘閫氱紪杈戦〉鐩存帴灏嗙姸鎬佺疆涓哄畬缁撱��
+5. 璁惧淇濆吇瀹氭椂浠诲姟鏂板鈥滀繚鍏讳汉鈥濊緭鍏ラ」锛屽苟鍦ㄥ垪琛�/璇︽儏灞曠ず銆�
+6. 绉戠洰鎬昏处椤甸潰鎸夊崟琛屽悎璁℃覆鏌擄紝涓嶅啀鏄剧ず鍑瘉瀛楀彿銆佹憳瑕佸垪銆�
+
+---
+
+## 5. 鑱旇皟妫�鏌ユ竻鍗�
+
+1. 绉戠洰鎬昏处鏌ヨ杩斿洖 `data.length === 1`锛屼笖鏃� `voucherNo/summary`銆�
+2. 鏂板淇濆吇瀹氭椂浠诲姟鏃朵紶 `maintenancePerson`锛屽垪琛ㄨ兘鍥炴樉銆�
+3. 瀹氭椂浠诲姟瑙﹀彂鍚庯紝鐢熸垚鐨勪繚鍏昏褰� `maintenanceActuallyName` 涓庡畾鏃朵换鍔′繚鍏讳汉涓�鑷淬��
+4. 鎶ヤ慨鍗曟祦绋嬶細`0寰呯淮淇� -> 3寰呴獙鏀� -> 1瀹岀粨`銆�
+5. 寰呴獙鏀跺崟鎹湭濉獙鏀朵汉/楠屾敹鏃堕棿/楠屾敹澶囨敞鏃讹紝鍚庣杩斿洖瀵瑰簲閿欒鎻愮ず銆�
+6. 灏濊瘯閫氳繃 `PUT /device/repair` 鐩存帴璁句负瀹岀粨鏃讹紝鍚庣杩斿洖鎷︽埅鎻愮ず銆�
+
+---
+
+## 6. 鏁版嵁搴撳彉鏇达紙鑱旇皟鍓嶇‘璁わ級
+
+```sql
+ALTER TABLE maintenance_task
+ ADD COLUMN maintenance_person VARCHAR(100) NULL COMMENT '淇濆吇浜�';
+
+ALTER TABLE device_repair
+ ADD COLUMN acceptance_name VARCHAR(100) NULL COMMENT '楠屾敹浜�',
+ ADD COLUMN acceptance_time DATETIME NULL COMMENT '楠屾敹鏃堕棿',
+ ADD COLUMN acceptance_remark VARCHAR(500) NULL COMMENT '楠屾敹澶囨敞';
+```
+
+> 鑻ユ湭鎵ц浠ヤ笂 SQL锛岀浉鍏虫帴鍙d細鍑虹幇瀛楁涓嶅瓨鍦ㄥ紓甯搞��
+
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
index d3c19bb..7df7c26 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
@@ -46,10 +46,16 @@
return deviceRepairService.updateDeviceRepair(deviceRepairDto);
}
- @PostMapping ("repair")
+ @PostMapping ("/repair")
@Operation(summary = "璁惧缁翠慨")
public AjaxResult repair( @RequestBody DeviceRepairDto deviceRepairDto) {
- return deviceRepairService.updateDeviceRepair(deviceRepairDto);
+ return deviceRepairService.confirmRepair(deviceRepairDto);
+ }
+
+ @PostMapping ("/acceptance")
+ @Operation(summary = "璁惧鎶ヤ慨楠屾敹瀹℃壒")
+ public AjaxResult acceptance(@RequestBody DeviceRepairDto deviceRepairDto) {
+ return deviceRepairService.approveRepairAcceptance(deviceRepairDto);
}
@DeleteMapping("/{ids}")
diff --git a/src/main/java/com/ruoyi/device/execl/DeviceRepairExeclDto.java b/src/main/java/com/ruoyi/device/execl/DeviceRepairExeclDto.java
index c782da2..caf5c1a 100644
--- a/src/main/java/com/ruoyi/device/execl/DeviceRepairExeclDto.java
+++ b/src/main/java/com/ruoyi/device/execl/DeviceRepairExeclDto.java
@@ -47,6 +47,18 @@
@Excel(name = "缁翠慨缁撴灉")
private String maintenanceResult;
+ @Schema(description = "楠屾敹浜�")
+ @Excel(name = "楠屾敹浜�")
+ private String acceptanceName;
+
+ @Schema(description = "楠屾敹鏃堕棿")
+ @Excel(name = "楠屾敹鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime acceptanceTime;
+
+ @Schema(description = "楠屾敹澶囨敞")
+ @Excel(name = "楠屾敹澶囨敞")
+ private String acceptanceRemark;
+
@Schema(description = "鐘舵��")
@Excel(name = "鐘舵��")
private String statusStr;
diff --git a/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java b/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java
index 9db134e..c9efa55 100644
--- a/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java
+++ b/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java
@@ -50,7 +50,19 @@
@Schema(description = "缁翠慨缁撴灉")
private String maintenanceResult;
+ @Schema(description = "楠屾敹浜�")
+ private String acceptanceName;
+
+ @Schema(description = "楠屾敹鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime acceptanceTime;
+
+ @Schema(description = "楠屾敹澶囨敞")
+ private String acceptanceRemark;
+
@Schema(description = "鐘舵�� 0 寰呯淮淇� 1瀹岀粨 2 澶辫触")
+ // 0:寰呯淮淇� 1:瀹岀粨 2:澶辫触 3:寰呴獙鏀�
private Integer status;
@Schema(description = "鍒涘缓鏃堕棿")
diff --git a/src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java b/src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java
index 2e35584..350a09d 100644
--- a/src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java
+++ b/src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java
@@ -44,6 +44,10 @@
@Schema(description = "璁惧id")
private Long taskId;
+ @Schema(description = "淇濆吇浜�")
+ @Excel(name = "淇濆吇浜�")
+ private String maintenancePerson;
+
@Schema(description = "棰戞")
@Excel(name = "棰戞")
private String frequencyType;
diff --git a/src/main/java/com/ruoyi/device/service/IDeviceRepairService.java b/src/main/java/com/ruoyi/device/service/IDeviceRepairService.java
index 8d20acd..ae0b913 100644
--- a/src/main/java/com/ruoyi/device/service/IDeviceRepairService.java
+++ b/src/main/java/com/ruoyi/device/service/IDeviceRepairService.java
@@ -19,6 +19,10 @@
AjaxResult updateDeviceRepair(DeviceRepairDto deviceRepairDto);
+ AjaxResult confirmRepair(DeviceRepairDto deviceRepairDto);
+
+ AjaxResult approveRepairAcceptance(DeviceRepairDto deviceRepairDto);
+
void export(HttpServletResponse response, Long[] ids);
DeviceRepairVo detailById(Long id);
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..e5a73ac 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java
@@ -47,6 +47,11 @@
private final SparePartsRequisitionRecordService sparePartsRequisitionRecordService;
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) {
IPage<DeviceRepairVo> pageDto = deviceRepairMapper.queryPage(page, deviceRepairDto);
@@ -62,6 +67,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 +83,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<>();
@@ -131,6 +148,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 +207,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 +228,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);
diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
index 09d5d77..204667b 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
@@ -93,6 +93,7 @@
inspectionTask.setMaintenanceTaskId(timingTask.getId());
inspectionTask.setDeviceLedgerId(timingTask.getTaskId());
inspectionTask.setMaintenancePlanTime(LocalDateTime.now());
+ inspectionTask.setMaintenanceActuallyName(timingTask.getMaintenancePerson());
inspectionTask.setFrequencyType(timingTask.getFrequencyType());
inspectionTask.setFrequencyDetail(timingTask.getFrequencyDetail());
inspectionTask.setTenantId(timingTask.getTenantId());
diff --git a/src/main/resources/mapper/collaborativeApproval/SealApplicationManagementMapper.xml b/src/main/resources/mapper/collaborativeApproval/SealApplicationManagementMapper.xml
index 5da6dff..d8a5956 100644
--- a/src/main/resources/mapper/collaborativeApproval/SealApplicationManagementMapper.xml
+++ b/src/main/resources/mapper/collaborativeApproval/SealApplicationManagementMapper.xml
@@ -4,13 +4,27 @@
<select id="listPage" resultType="com.ruoyi.collaborativeApproval.dto.SealApplicationManagementDTO">
- select sam.*, su.user_name as create_user_name, d.dept_name as department,
- su1.nick_name as approveUserName
- from seal_application_management sam
- left join sys_user su on sam.create_user = su.user_id
- left join sys_user su1 on sam.approve_user_id = su1.user_id
- left join sys_user_dept sud on su.user_id = sud.user_id
- left join sys_dept d on sud.dept_id = d.dept_id
+ SELECT
+ sam.*,
+ su.user_name AS create_user_name,
+
+ GROUP_CONCAT(DISTINCT d.dept_name ORDER BY d.dept_id SEPARATOR ',') AS department,
+
+ su1.nick_name AS approveUserName
+
+ FROM seal_application_management sam
+
+ LEFT JOIN sys_user su
+ ON sam.create_user = su.user_id
+
+ LEFT JOIN sys_user su1
+ ON sam.approve_user_id = su1.user_id
+
+ LEFT JOIN sys_user_dept sud
+ ON su.user_id = sud.user_id
+
+ LEFT JOIN sys_dept d
+ ON sud.dept_id = d.dept_id
<where>
<if test="ew.applicationNum != null and ew.applicationNum != ''">
and sam.application_num like concat('%',#{ew.applicationNum},'%')
@@ -22,5 +36,6 @@
and sam.status = #{ew.status}
</if>
</where>
+ GROUP BY sam.id
</select>
</mapper>
diff --git a/src/main/resources/mapper/device/DeviceRepairMapper.xml b/src/main/resources/mapper/device/DeviceRepairMapper.xml
index 2eb1d29..713e346 100644
--- a/src/main/resources/mapper/device/DeviceRepairMapper.xml
+++ b/src/main/resources/mapper/device/DeviceRepairMapper.xml
@@ -11,10 +11,13 @@
dr.repair_time,
dr.repair_name,
dr.remark,
- dr.maintenance_name,
- dr.maintenance_time,
- dr.maintenance_result,
- dr.status,
+ dr.maintenance_name,
+ dr.maintenance_time,
+ dr.maintenance_result,
+ dr.acceptance_name,
+ dr.acceptance_time,
+ dr.acceptance_remark,
+ dr.status,
dr.create_time,
dr.update_time,
dr.create_user,
@@ -60,6 +63,9 @@
dr.maintenance_name,
dr.maintenance_time,
dr.maintenance_result,
+ dr.acceptance_name,
+ dr.acceptance_time,
+ dr.acceptance_remark,
dr.status,
dr.create_time,
dr.update_time,
--
Gitblit v1.9.3