From 9d5a8f1595089094ff781d9d9e7872f8555404e6 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 09 三月 2026 10:43:51 +0800
Subject: [PATCH] 区分工序计时还是计件  调整生产核算工资计算方法

---
 src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java |    7 +++
 src/main/java/com/ruoyi/production/dto/UserProductionAccountingDto.java                         |   10 +++++
 src/main/java/com/ruoyi/production/mapper/SalesLedgerProductionAccountingMapper.java            |    4 ++
 src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml                  |   13 ++++++
 src/main/java/com/ruoyi/production/controller/SalesLedgerProductionAccountingController.java    |    7 +++
 src/main/java/com/ruoyi/production/dto/UserAccountDto.java                                      |   21 ++++++++++
 src/main/java/com/ruoyi/production/service/SalesLedgerProductionAccountingService.java          |    4 ++
 7 files changed, 66 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/controller/SalesLedgerProductionAccountingController.java b/src/main/java/com/ruoyi/production/controller/SalesLedgerProductionAccountingController.java
index 50fa4aa..02d36c8 100644
--- a/src/main/java/com/ruoyi/production/controller/SalesLedgerProductionAccountingController.java
+++ b/src/main/java/com/ruoyi/production/controller/SalesLedgerProductionAccountingController.java
@@ -11,6 +11,7 @@
 import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.production.dto.ProductOrderDto;
 import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
+import com.ruoyi.production.dto.UserProductionAccountingDto;
 import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
 import com.ruoyi.production.service.SalesLedgerProductionAccountingService;
 import com.ruoyi.production.service.impl.SalesLedgerProductionAccountingServiceImpl;
@@ -68,4 +69,10 @@
     public R listProductionDetails(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page){
         return R.ok(salesLedgerProductionAccountingService.listProductionDetails(salesLedgerProductionAccountingDto,page));
     }
+
+    @GetMapping("getByUserId")
+    @ApiModelProperty("鏌ヨ宸ヤ汉鐢熶骇宸ヨ祫淇℃伅")
+    public R getByUserId(UserProductionAccountingDto userProductionAccountingDto){
+        return R.ok(salesLedgerProductionAccountingService.getByUserId(userProductionAccountingDto));
+    }
 }
diff --git a/src/main/java/com/ruoyi/production/dto/UserAccountDto.java b/src/main/java/com/ruoyi/production/dto/UserAccountDto.java
new file mode 100644
index 0000000..75f99bc
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/dto/UserAccountDto.java
@@ -0,0 +1,21 @@
+package com.ruoyi.production.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class UserAccountDto {
+
+    private String userName;
+
+    private Long userId;
+
+    @ApiModelProperty("璁℃椂")
+    private BigDecimal account;
+
+    @ApiModelProperty("璁′欢")
+    private BigDecimal accountBalance;
+
+}
diff --git a/src/main/java/com/ruoyi/production/dto/UserProductionAccountingDto.java b/src/main/java/com/ruoyi/production/dto/UserProductionAccountingDto.java
new file mode 100644
index 0000000..ba191d1
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/dto/UserProductionAccountingDto.java
@@ -0,0 +1,10 @@
+package com.ruoyi.production.dto;
+
+import lombok.Data;
+
+@Data
+public class UserProductionAccountingDto {
+    private Long userId;
+
+    private String date;
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/SalesLedgerProductionAccountingMapper.java b/src/main/java/com/ruoyi/production/mapper/SalesLedgerProductionAccountingMapper.java
index de01d46..8dec95c 100644
--- a/src/main/java/com/ruoyi/production/mapper/SalesLedgerProductionAccountingMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/SalesLedgerProductionAccountingMapper.java
@@ -4,6 +4,8 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
+import com.ruoyi.production.dto.UserAccountDto;
+import com.ruoyi.production.dto.UserProductionAccountingDto;
 import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
 import org.apache.ibatis.annotations.Param;
 
@@ -23,4 +25,6 @@
     IPage<SalesLedgerProductionAccountingDto> pageProductionAccounting(Page page, @Param("ew") SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto);
 
     List<Map<String, Object>> selectDailyWagesStats(@Param("startDate") String startDate, @Param("endDate") String endDate);
+
+    UserAccountDto getByUserId(@Param( "ew") UserProductionAccountingDto userProductionAccountingDto);
 }
diff --git a/src/main/java/com/ruoyi/production/service/SalesLedgerProductionAccountingService.java b/src/main/java/com/ruoyi/production/service/SalesLedgerProductionAccountingService.java
index bf0176b..4ebd01f 100644
--- a/src/main/java/com/ruoyi/production/service/SalesLedgerProductionAccountingService.java
+++ b/src/main/java/com/ruoyi/production/service/SalesLedgerProductionAccountingService.java
@@ -5,6 +5,8 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.production.dto.ProductionProductMainDto;
 import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
+import com.ruoyi.production.dto.UserAccountDto;
+import com.ruoyi.production.dto.UserProductionAccountingDto;
 import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
 
 /**
@@ -20,4 +22,6 @@
     IPage<SalesLedgerProductionAccountingDto> pageProductionAccounting(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page);
 
     IPage<ProductionProductMainDto> listProductionDetails(SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page);
+
+    UserAccountDto getByUserId(UserProductionAccountingDto userProductionAccountingDto);
 }
diff --git a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java
index 7212d3f..7e5f58b 100644
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerProductionAccountingServiceImpl.java
@@ -6,6 +6,8 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.production.dto.ProductionProductMainDto;
 import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
+import com.ruoyi.production.dto.UserAccountDto;
+import com.ruoyi.production.dto.UserProductionAccountingDto;
 import com.ruoyi.production.mapper.ProductionProductMainMapper;
 import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
 import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
@@ -68,6 +70,11 @@
         return productionProductMainMapper.listProductionDetails(salesLedgerProductionAccountingDto, page);
     }
 
+    @Override
+    public UserAccountDto getByUserId(UserProductionAccountingDto userProductionAccountingDto) {
+        return salesLedgerProductionAccountingMapper.getByUserId( userProductionAccountingDto);
+    }
+
     public static boolean isNumeric(String str) {
         if (str == null || str.isEmpty()) {
             return false;
diff --git a/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml b/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
index 28501a6..d9ddde7 100644
--- a/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
+++ b/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
@@ -105,6 +105,19 @@
         GROUP BY DATE(ppout.create_time)
         ORDER BY DATE(ppout.create_time);
     </select>
+    <select id="getByUserId" resultType="com.ruoyi.production.dto.UserAccountDto">
+        select
+            slpa.scheduling_user_id as user_id,
+            pp.type,
+            sum(case when pp.type = 0 then slpa.work_hours else 0 end) as account,
+            sum(case when pp.type = 1 then slpa.work_hours else 0 end) as accountBalance
+        from sales_ledger_production_accounting slpa
+                 left join product_process pp on pp.name = slpa.process
+        where  slpa.scheduling_user_id = #{ew.userId}
+          and slpa.scheduling_date like concat(#{ew.date}, '%')
+        group by slpa.scheduling_user_id
+
+    </select>
 
 
 </mapper>

--
Gitblit v1.9.3