From 1284fb157043e488aa1794d8f1b64ebf18aa5147 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 08 十月 2026 17:08:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_tide' into dev_tide

---
 src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java b/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
index 7d73759..f5c9850 100644
--- a/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
+++ b/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
@@ -79,5 +79,51 @@
         staffOnJobService.staffOnJobExport(response, staffOnJob);
     }
 
+    /**
+     * 鏂板鍦ㄨ亴鍛樺伐
+     */
+    @PostMapping
+    public AjaxResult add(@RequestBody StaffOnJob staffOnJob) {
+        if (staffOnJob.getStaffState() == null) {
+            staffOnJob.setStaffState(1);
+        }
+        return staffOnJobService.save(staffOnJob) ? AjaxResult.success() : AjaxResult.error("鏂板澶辫触");
+    }
+
+    /**
+     * 淇敼鍦ㄨ亴鍛樺伐
+     */
+    @PutMapping("/{id}")
+    public AjaxResult update(@PathVariable Long id, @RequestBody StaffOnJob staffOnJob) {
+        staffOnJob.setId(id);
+        return staffOnJobService.updateById(staffOnJob) ? AjaxResult.success() : AjaxResult.error("淇敼澶辫触");
+    }
+
+    /**
+     * 鍒犻櫎鍦ㄨ亴鍛樺伐
+     */
+    @DeleteMapping("/del")
+    public AjaxResult del(@RequestBody List<Long> ids) {
+        return staffOnJobService.removeByIds(ids) ? AjaxResult.success() : AjaxResult.error("鍒犻櫎澶辫触");
+    }
+
+    /**
+     * 鍦ㄨ亴鍛樺伐缁熻锛堝湪鑱屼汉鏁� / 钖祫鍚堣锛�
+     */
+    @GetMapping("/statistics")
+    public AjaxResult statistics() {
+        List<StaffOnJob> list = staffOnJobService.list();
+        long onJobCount = list.stream()
+                .filter(s -> s.getStaffState() != null && s.getStaffState() == 1).count();
+        java.math.BigDecimal salaryTotal = list.stream()
+                .filter(s -> s.getStaffState() != null && s.getStaffState() == 1 && s.getSalary() != null)
+                .map(StaffOnJob::getSalary)
+                .reduce(java.math.BigDecimal.ZERO, java.math.BigDecimal::add);
+        java.util.Map<String, Object> map = new java.util.HashMap<>();
+        map.put("onJobCount", onJobCount);
+        map.put("salaryTotal", salaryTotal);
+        return AjaxResult.success(map);
+    }
+
 
 }

--
Gitblit v1.9.3