From 57fc660acff85425c2b4f8dfdb7801068188dcf3 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期四, 25 十二月 2025 11:45:52 +0800
Subject: [PATCH] 提交报工上传mysql做数量限制
---
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java | 42 ++++++++++++++++++++++++++++++++++++++++++
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java | 2 ++
north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml | 8 ++++++++
north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java | 3 +++
4 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
index 0d09f44..f3a5939 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
@@ -68,6 +68,9 @@
private Integer importNumber;
//璁㈠崟杞Щ瀵煎嚭鏁伴噺
private Integer exportNumber;
+
+ //缁堟鏁伴噺
+ private Integer terminationQuantity;
//杩炵嚎鐘舵��(0涓嶈繛绾�1杩炵嚎锛岄粯璁�1锛屾坊鍔犳椂闂�
private Integer onlineStatus;
//寤虹珛鏃堕棿
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
index 52c4b3a..1926bbb 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
@@ -28,4 +28,6 @@
Integer selectInventory(@Param("processId") String processId, @Param("orderNumber") Integer orderNumber, @Param("technologyNumber") Integer technologyNumber, String thisProcess);
String getGlassPliesCount(String reportingWorkId);
+
+ int selectFinishQuantity(String reportingWorkId);
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
index d3e2920..646858a 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -1728,6 +1728,38 @@
JSONObject.toJSONString(stringRedisTemplate.opsForHash().entries(detailKey))
, ReportingWorkDetail.class
);
+
+ //鍒ゆ柇娴佺▼鍗℃槸鍚︽姤婊�
+ FlowCard flowCard = flowCardMapper.selectOne(new LambdaQueryWrapper<FlowCard>()
+ .eq(FlowCard::getProcessId, reportingWork.getProcessId())
+ .eq(FlowCard::getOrderNumber, reportingWorkDetail.getOrderNumber())
+ .eq(FlowCard::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
+ );
+ //鐢熶骇鏁伴噺= 娴佺▼鍗℃暟閲�-缁堟鏁伴噺
+ int flowCardReportingWorkNum = flowCard.getQuantity()-flowCard.getTerminationQuantity();
+ OrderProcessDetail orderProcessDetail = orderProcessDetailMapper
+ .selectOne(new LambdaQueryWrapper<OrderProcessDetail>()
+ .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId())
+ .eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
+ .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
+ .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess())
+ );
+ //鎶ュ伐鏁伴噺
+ int completedQuantity = reportingWorkDetail.getCompletedQuantity();
+ //宸叉姤鏁伴噺
+ int finishReportingWorkNum = orderProcessDetail.getReportingWorkNum();
+
+ //鑻ユ姤宸ユ暟閲�+宸叉姤鏁伴噺>娴佺▼鍗℃暟閲� 鍒欐姤宸ユ暟閲忎负娴佺▼鍗℃暟閲�-宸叉姤鏁伴噺
+ if((completedQuantity+finishReportingWorkNum)>flowCardReportingWorkNum){
+ completedQuantity = flowCardReportingWorkNum - finishReportingWorkNum;
+ reportingWorkDetail.setCompletedQuantity(completedQuantity);
+ //鑻ユ姤宸ユ暟閲忓皬浜�0 鍒欐姤宸ユ暟閲忎负0
+ if(completedQuantity<0){
+ reportingWorkDetail.setCompletedQuantity(0);
+ }
+ }
+
+
reportingWorkDetail.setReportingWorkId(reportingWorkId);
reportingWorkDetailMapper.insert(reportingWorkDetail);
@@ -1743,8 +1775,18 @@
orderProcessDetailMapper.update(null, updateWrapper);
});
+
+ //鑾峰彇瀹屽伐鏄庣粏鏁伴噺鎬诲拰
+ int num = reportingWorkDetailMapper.selectFinishQuantity(reportingWorkId);
+ reportingWorkMapper.update(null,
+ new LambdaUpdateWrapper<ReportingWork>()
+ .eq(ReportingWork::getReportingWorkId, reportingWorkId)
+ .setSql("this_completed_quantity = " + num)
+ );
+
}
+
});
}
Set<String> uploadKeys = stringRedisTemplate.keys("upload:reportingWork:*");
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
index b8a6891..1df8fd1 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
@@ -268,4 +268,12 @@
</select>
+ <select id="selectFinishQuantity">
+ select sum(a.completed_quantity) from (Select completed_quantity
+ from pp.reporting_work_detail
+ where reporting_work_id = #{reportingWorkId}
+ group by order_number) a
+
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0