From e700e89f85e58747b57fc0d7e1fd30f3483aacca Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 14 九月 2024 16:05:57 +0800
Subject: [PATCH] 检验任务历史记录
---
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java | 91 +++++++++++++++++++++++++++++++++------------
1 files changed, 67 insertions(+), 24 deletions(-)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java
index 3a719a9..93888e0 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java
@@ -25,6 +25,8 @@
import com.itextpdf.text.pdf.PdfStamper;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.dto.InsReportDto;
+import com.yuanchu.mom.dto.InsReportDto1;
import com.yuanchu.mom.dto.ReportPageDto;
import com.yuanchu.mom.dto.SampleProductDto;
import com.yuanchu.mom.exception.ErrorException;
@@ -95,10 +97,19 @@
private InsOrderMapper insOrderMapper;
@Resource
+ private StandardMethodListMapper standardMethodListMapper;
+
+ @Resource
private InsOrderStateMapper insOrderStateMapper;
@Resource
private InsProductMapper insProductMapper;
+
+ @Resource
+ private InsProductResultMapper insProductResultMapper;
+
+ @Resource
+ private InsProductResult2Mapper insProductResult2Mapper;
@Resource
private InsSampleMapper insSampleMapper;
@@ -364,16 +375,16 @@
//鏄惁闇�瑕佺敓鎴愭姤鍛�: 0涓嶉渶瑕�;1闇�瑕�
@Override
@Transactional(rollbackFor = Exception.class)
- public int isReport(Integer id, Integer state) {
+ public int isReport(InsReportDto insReportDto) {
//鍏堝垽鏂璁㈠崟鏄惁鍙互鍘荤敓浜ф姤鍛�
- Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, id).eq(InsOrderState::getInsState, 5));
+ Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, insReportDto.getId()).eq(InsOrderState::getInsState, 5));
if (count > 0) {
- if (state == 1) {
- generateReport(id);
+ if (insReportDto.getState() == 1) {
+ generateReport(insReportDto.getId(), insReportDto.getInsReportDto1s());
} else {
//缁撴潫璁㈠崟
InsOrder insOrder = new InsOrder();
- insOrder.setId(id);
+ insOrder.setId(insReportDto.getId());
insOrder.setState(4);
insOrderMapper.updateById(insOrder);
}
@@ -381,6 +392,13 @@
throw new ErrorException("璇ヨ鍗曡繕鏈粨鏉熻瘯楠�,鏃犳硶鐢熶骇鎶ュ憡!");
}
return 0;
+ }
+
+ //鏌ュ嚭璇ヨ鍗曚笅姣忎釜绔欑偣涓嬬殑妫�楠屾鏁�
+ @Override
+ public List<InsOrderState> getInsOrderStateCount(Integer id) {
+ List<InsOrderState> insOrderStates = insOrderStateMapper.getInsOrderStateCount(id);
+ return insOrderStates;
}
@@ -578,16 +596,13 @@
}
//鐢熸垚鎶ュ憡
- private void generateReport(Integer orderId) {
+ private void generateReport(Integer orderId, List<InsReportDto1> insReportDto1s) {
LocalDateTime now = LocalDateTime.now();
InsOrder insOrder = insOrderMapper.selectById(orderId);
//濮旀墭閮ㄩ棬 departLims
String departLims = userMapper.selectDepartLims(insOrder.getPrepareUser());
//samples鏄繃婊ゆ帀娌℃湁妫�楠岄」鐩殑鏍峰搧
List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId);
- if (samples.size()==0){
- samples=insSampleMapper.selectSampleProductListByOrder2Id(orderId);
- }
String sampleCode = samples.get(0).getSampleCode();
InsReport insReport = new InsReport();
insReport.setCode(insOrder.getEntrustCode());
@@ -603,39 +618,67 @@
String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
samples.forEach(s -> {
models.add(s.getModel());
- standardMethod.add(insOrderMapper.getStandardMethodCode(s.getStandardMethodListId()));
+ standardMethod.addAll(standardMethodListMapper.selectList(Wrappers.<StandardMethodList>lambdaQuery()
+ .in(StandardMethodList::getId,Arrays.stream(s.getStandardMethodListId().replaceAll("[\\[\\]]", "").split(","))
+ .map(String::trim).map(Integer::parseInt).collect(Collectors.toList()))).stream().map(StandardMethodList::getCode).distinct().collect(Collectors.toList()));
//鎬绘暟
- Long productCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, s.getId()));
+ Long productCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
+ .eq(InsProduct::getInsSampleId, s.getId()));
productSize.set(productSize.get() + Integer.parseInt(productCount + ""));
//涓嶅垽瀹�
Long productCount1 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
.eq(InsProduct::getInsSampleId, s.getId())
- .eq(InsProduct::getInsResult,3));
+ .eq(InsProduct::getInsResult, 3));
productSize1.set(productSize1.get() + Integer.parseInt(productCount1 + ""));
//涓嶅悎鏍�
Long productCount2 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
.eq(InsProduct::getInsSampleId, s.getId())
- .eq(InsProduct::getInsResult,0));
+ .eq(InsProduct::getInsResult, 0));
productSize2.set(productSize2.get() + Integer.parseInt(productCount2 + ""));
//鍚堟牸
Long productCount3 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
.eq(InsProduct::getInsSampleId, s.getId())
- .eq(InsProduct::getInsResult,1));
+ .eq(InsProduct::getInsResult, 1));
productSize3.set(productSize3.get() + Integer.parseInt(productCount3 + ""));
- for (InsProduct b : s.getInsProduct()) {
- if (b.getInsProductResult() != null) {
- List<JSONObject> jsonObjects = JSON.parseArray(b.getInsProductResult().getEquipValue(), JSONObject.class);
+ //灏嗛」鐩寜鐓х珯鐐硅繘琛屽垎绫�
+ Map<String, List<InsProduct>> listMap = s.getInsProduct().stream().collect(Collectors.groupingBy(InsProduct::getLaboratory));
+ // 鍒涘缓涓�涓� Map 灏嗙珯鐐瑰拰椤圭洰ID鐨勬槧灏勫叧绯�
+ Map<String, Set<Integer>> labToDeviceMap = new HashMap<>();
+ // 鑾峰彇鎵�鏈夌珯鐐圭殑椤圭洰ID 鍒楄〃
+ for (Map.Entry<String, List<InsProduct>> entry : listMap.entrySet()) {
+ Set<Integer> deviceIds = entry.getValue().stream()
+ .map(InsProduct::getId)
+ .collect(Collectors.toSet());
+ labToDeviceMap.put(entry.getKey(), deviceIds);
+ }
+ for (InsReportDto1 insReportDto1 : insReportDto1s) {
+ String laboratory = insReportDto1.getLaboratory();
+ if (!labToDeviceMap.containsKey(laboratory)) {
+ continue;
+ }
+ Set<Integer> deviceIds = labToDeviceMap.get(laboratory);
+ Integer num = insReportDto1.getNum();
+ List<InsProductResult> insProductResults = insProductResultMapper.selectList(
+ Wrappers.<InsProductResult>lambdaQuery()
+ .eq(InsProductResult::getNum, num)
+ .in(InsProductResult::getInsProductId, deviceIds));
+ for (InsProductResult insProductResult : insProductResults) {
+ List<JSONObject> jsonObjects = JSON.parseArray(insProductResult.getEquipValue(), JSONObject.class);
for (JSONObject jsonObject : jsonObjects) {
- if (!"".equals(jsonObject.get("v") + "")) {
- deviceSet.add(jsonObject.get("v") + "");
+ String value = jsonObject.getString("v");
+ if (value != null && !value.isEmpty()) {
+ deviceSet.add(value);
}
}
}
- if (b.getInsProductResult2() != null) {
- for (InsProductResult2 jsonObject : b.getInsProductResult2()) {
- if (jsonObject.getEquipValue() != null) {
- deviceSet.add(jsonObject.getEquipValue());
- }
+ List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(
+ Wrappers.<InsProductResult2>lambdaQuery()
+ .eq(InsProductResult2::getNum, num)
+ .in(InsProductResult2::getInsProductId, deviceIds));
+ for (InsProductResult2 result2 : insProductResult2s) {
+ String equipValue = result2.getEquipValue();
+ if (equipValue != null && !equipValue.isEmpty()) {
+ deviceSet.add(equipValue);
}
}
}
--
Gitblit v1.9.3