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 |   61 ++++++++++++++++++++++++++++++
 1 files changed, 61 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 4230695..f5c9850 100644
--- a/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
+++ b/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
@@ -1,6 +1,8 @@
 package com.ruoyi.staff.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
 import com.ruoyi.staff.pojo.StaffOnJob;
@@ -8,6 +10,7 @@
 import com.ruoyi.staff.service.IStaffOnJobService;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -53,6 +56,18 @@
     public AjaxResult staffOnJobDetail(String staffNo) {
         return AjaxResult.success(staffOnJobService.staffOnJobDetail(staffNo));
     }
+    /**
+     * 鍦ㄨ亴鍛樺伐瀵煎叆
+     */
+    @PostMapping("/import")
+    @Log(title = "鍦ㄨ亴鍛樺伐瀵煎叆", businessType = BusinessType.IMPORT)
+    public AjaxResult importData(@RequestPart("file") MultipartFile file) {
+        Boolean b = staffOnJobService.importData(file);
+        if (b) {
+            return AjaxResult.success("瀵煎叆鎴愬姛");
+        }
+        return AjaxResult.error("瀵煎叆澶辫触");
+    }
 
     /**
      * 鍦ㄨ亴鍛樺伐瀵煎嚭
@@ -64,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