From 7e84848f0ea65411bdc9f27e5fa9d714157d032a Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期四, 05 二月 2026 17:24:20 +0800
Subject: [PATCH] 生产统计
---
src/main/java/com/ruoyi/production/service/ProductionProductMainService.java | 9 +++++++++
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 6 ++++++
src/main/resources/mapper/production/ProductionProductMainMapper.xml | 26 ++++++++++++++++++++++++++
src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java | 3 +++
src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java | 9 +++++----
src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java | 4 ++--
6 files changed, 51 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
index 1dd597b..7f398b6 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -3,9 +3,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductProcessRouteItemDto;
import com.ruoyi.production.dto.ProductionProductMainDto;
-import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
import com.ruoyi.production.service.ProductionProductMainService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -14,7 +12,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
import java.util.List;
@RequestMapping("productionProductMain")
@@ -54,7 +51,6 @@
return R.ok(productionProductMainService.removeProductMain(productionProductMainDto.getId()));
}
-
/**
* 瀵煎嚭
*/
@@ -65,4 +61,9 @@
ExcelUtil<ProductionProductMainDto> util = new ExcelUtil<ProductionProductMainDto>(ProductionProductMainDto.class);
util.exportExcel(response, list, "鐢熶骇鎶ュ伐鏁版嵁");
}
+
+ @GetMapping("/queryProductInputAndOutput")
+ public R queryProductInputAndOutput(Page page, ProductionProductMainDto productionProductMainDto) {
+ return R.ok(productionProductMainService.queryProductInputAndOutput(page, productionProductMainDto));
+ }
}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java b/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
index 5ef224b..76723de 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
@@ -10,7 +10,6 @@
import java.math.BigDecimal;
import java.time.LocalDate;
-import java.time.LocalDateTime;
@Data
@ExcelIgnoreUnannotated
@@ -59,5 +58,6 @@
private BigDecimal workHours;
private BigDecimal wages;
-
+ private String startTime;
+ private String endTime;
}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
index e63e032..e228019 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
@@ -11,6 +11,7 @@
import org.apache.ibatis.annotations.Param;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
@Mapper
@@ -33,4 +34,6 @@
IPage<ProductionProductMainDto> listProductionDetails(@Param("ew") SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page);
ArrayList<Long> listMain(List<Long> idList);
+
+ IPage<HashMap<String, Object>> queryProductInputAndOutput(Page page, @Param("ew") ProductionProductMainDto productionProductMainDto);
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
index 72d868c..cfd55f1 100644
--- a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
@@ -7,6 +7,7 @@
import com.ruoyi.production.pojo.ProductionProductMain;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
public interface ProductionProductMainService extends IService<ProductionProductMain> {
@@ -17,4 +18,12 @@
Boolean removeProductMain(Long id);
ArrayList<Long> listMain(List<Long> idList);
+
+ /**
+ * 鎸夊ぉ鏌ヨ浜у搧鐨勬姇鍏ュ拰浜у嚭
+ * @param page
+ * @param productionProductMainDto
+ * @return
+ */
+ IPage<HashMap<String, Object>> queryProductInputAndOutput(Page page, ProductionProductMainDto productionProductMainDto);
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index e24045c..d5d2437 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -37,6 +37,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -337,4 +338,9 @@
public ArrayList<Long> listMain(List<Long> idList) {
return productionProductMainMapper.listMain(idList);
}
+
+ @Override
+ public IPage<HashMap<String, Object>> queryProductInputAndOutput(Page page, ProductionProductMainDto productionProductMainDto) {
+ return productionProductMainMapper.queryProductInputAndOutput(page, productionProductMainDto);
+ }
}
diff --git a/src/main/resources/mapper/production/ProductionProductMainMapper.xml b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
index 9c3bf3d..fee9cdc 100644
--- a/src/main/resources/mapper/production/ProductionProductMainMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -115,4 +115,30 @@
#{id}
</foreach>
</delete>
+
+ <select id="queryProductInputAndOutput" resultType="Hashmap">
+ select *
+ from (select p.product_name as productName,
+ pm.model as model,
+ pm.unit as unit,
+ temp.inputQuantity as inputQuantity,
+ temp.outputQuantity as outputQuantity
+ from (select product_model_id,
+ coalesce(sum(inputQuantity), 0) as inputQuantity,
+ coalesce(sum(outputQuantity), 0) as outputQuantity
+ from ((select product_model_id, coalesce(sum(quantity), 0) as inputQuantity, 0 as outputQuantity
+ from production_product_input
+ where create_time >= #{ew.startTime}
+ and create_time < #{ew.endTime}
+ group by product_model_id)
+ union all
+ (select product_model_id, 0 as inputQuantity, coalesce(sum(quantity), 0) as outputQuantity
+ from production_product_output
+ where create_time >= #{ew.startTime}
+ and create_time < #{ew.endTime}
+ group by product_model_id)) t
+ group by product_model_id) temp
+ left join product_model pm on temp.product_model_id = pm.id
+ left join product p on pm.product_id = p.id) tmp
+ </select>
</mapper>
--
Gitblit v1.9.3