From 901bab9b8b1c3773a644bdc74f5eafd666591aeb Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 17 九月 2026 13:37:24 +0800
Subject: [PATCH] feat: 1委托单 2下单详情 3检验任务 4检验任务复核 5检验任务详情 6标准维护 7检验单详情 8报告编制
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 102 insertions(+), 7 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
index 63619a2..b5d0e0f 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
@@ -7,15 +7,22 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.StandardProductListMapper;
import com.ruoyi.basic.pojo.StandardProductList;
+import com.ruoyi.basic.utils.StandardTreePathParser;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.dto.InsProductBindingDto;
+import com.ruoyi.inspect.dto.WriteInspectionConditionDto;
import com.ruoyi.inspect.mapper.InsOrderMapper;
+import com.ruoyi.inspect.mapper.InsOrderStandardTemplateMapper;
+import com.ruoyi.inspect.mapper.InsOrderTemplateDeviceMapper;
import com.ruoyi.inspect.mapper.InsProductMapper;
import com.ruoyi.inspect.mapper.InsSampleMapper;
import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.pojo.InsOrderStandardTemplate;
+import com.ruoyi.inspect.pojo.InsOrderTemplateDevice;
import com.ruoyi.inspect.pojo.InsProduct;
import com.ruoyi.inspect.pojo.InsSample;
import com.ruoyi.inspect.service.InsProductService;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -38,6 +45,10 @@
private StandardProductListMapper standardProductListMapper;
+ private InsOrderStandardTemplateMapper insOrderStandardTemplateMapper;
+
+ private InsOrderTemplateDeviceMapper insOrderTemplateDeviceMapper;
+
@Override
public int selectOrderManDay(Integer orderId) {
return insProductMapper.selectOrderManDay(orderId);
@@ -53,7 +64,69 @@
}
@Override
- public boolean write(InsOrder insOrder) {
+ public boolean write(WriteInspectionConditionDto dto) {
+ if (dto == null || dto.getId() == null) {
+ throw new ErrorException("璁㈠崟ID涓嶈兘涓虹┖");
+ }
+ if (dto.getTemplateId() != null) {
+ InsOrderStandardTemplate snapshot = insOrderStandardTemplateMapper.selectOne(
+ Wrappers.<InsOrderStandardTemplate>lambdaQuery()
+ .eq(InsOrderStandardTemplate::getInsOrderId, dto.getId())
+ .eq(InsOrderStandardTemplate::getTemplateId, dto.getTemplateId())
+ .last("limit 1"));
+ if (snapshot == null) {
+ throw new ErrorException("鏈壘鍒板綋鍓嶆ā鏉跨殑鍘熷璁板綍蹇収");
+ }
+ boolean hasSnapshotField = dto.isTemperaturePresent() || dto.isHumidityPresent()
+ || dto.isDetectionTimePresent() || dto.isDetectionPlacePresent()
+ || dto.isInsResultPresent();
+ if (hasSnapshotField) {
+ insOrderStandardTemplateMapper.update(null,
+ Wrappers.<InsOrderStandardTemplate>lambdaUpdate()
+ .eq(InsOrderStandardTemplate::getId, snapshot.getId())
+ .set(dto.isTemperaturePresent(),
+ InsOrderStandardTemplate::getTemperature, dto.getTemperature())
+ .set(dto.isHumidityPresent(),
+ InsOrderStandardTemplate::getHumidity, dto.getHumidity())
+ .set(dto.isDetectionTimePresent(),
+ InsOrderStandardTemplate::getDetectionTime, dto.getDetectionTime())
+ .set(dto.isDetectionPlacePresent(),
+ InsOrderStandardTemplate::getDetectionPlace, dto.getDetectionPlace())
+ .set(dto.isInsResultPresent(),
+ InsOrderStandardTemplate::getInsResult, dto.getInsResult()));
+ }
+ if (dto.isDeviceIdsPresent()) {
+ insOrderTemplateDeviceMapper.delete(
+ Wrappers.<InsOrderTemplateDevice>lambdaQuery()
+ .eq(InsOrderTemplateDevice::getInsOrderId, dto.getId())
+ .eq(InsOrderTemplateDevice::getTemplateId, dto.getTemplateId()));
+ List<Integer> deviceIds = dto.getDeviceIds() == null
+ ? Collections.emptyList()
+ : dto.getDeviceIds().stream()
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+ if (!deviceIds.isEmpty()
+ && insOrderTemplateDeviceMapper.selectExistingDeviceIds(deviceIds).size() != deviceIds.size()) {
+ throw new ErrorException("鎵�閫夎澶囦笉瀛樺湪锛岃鍒锋柊璁惧鍒楄〃鍚庨噸璇�");
+ }
+ for (int index = 0; index < deviceIds.size(); index++) {
+ InsOrderTemplateDevice relation = new InsOrderTemplateDevice();
+ relation.setInsOrderId(dto.getId());
+ relation.setTemplateId(dto.getTemplateId());
+ relation.setDeviceId(deviceIds.get(index));
+ relation.setSort(index);
+ insOrderTemplateDeviceMapper.insert(relation);
+ }
+ }
+ if (!hasSnapshotField && !dto.isDeviceIdsPresent()) {
+ throw new ErrorException("娌℃湁闇�瑕佷繚瀛樼殑妯℃澘妫�楠屾潯浠�");
+ }
+ return true;
+ }
+ InsOrder insOrder = new InsOrder();
+ insOrder.setId(dto.getId());
+ insOrder.setRemark(dto.getRemark());
insOrderMapper.updateById(insOrder);
return true;
}
@@ -117,11 +190,18 @@
public List<InsProduct> getProductTreeByProductId(Integer productId) {
// 鏌ヨ妫�楠岄」淇℃伅
InsProduct insProduct = insProductMapper.selectById(productId);
- String tree = insProduct.getFactory() + " - " +
- insProduct.getLaboratory() + " - " +
- insProduct.getSampleType() + " - " +
- insProduct.getSample() + " - " +
- insProduct.getModel();
+ String tree;
+ if (insProduct.getSampleType() == null && insProduct.getModel() == null
+ && StringUtils.isNotBlank(insProduct.getLaboratory())
+ && StringUtils.isNotBlank(insProduct.getSample())) {
+ tree = StandardTreePathParser.canonical(insProduct.getLaboratory(), insProduct.getSample());
+ } else {
+ tree = insProduct.getFactory() + " - " +
+ insProduct.getLaboratory() + " - " +
+ insProduct.getSampleType() + " - " +
+ insProduct.getSample() + " - " +
+ insProduct.getModel();
+ }
// 鏌ヨ鏍囧噯鏍�
List<StandardProductList> standardProductLists = standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
.eq(StandardProductList::getStandardMethodListId, insProduct.getStandardMethodListId())
@@ -134,7 +214,8 @@
product.setTemplate(null);
product.setStyle(null);
return product;
- }).collect(Collectors.toList());
+ }).sorted((o1, o2) -> (o1.getSort() == null ? 0 : o1.getSort())
+ - (o2.getSort() == null ? 0 : o2.getSort())).collect(Collectors.toList());
return insProducts;
}
@@ -213,6 +294,20 @@
return false;
}
+ @Override
+ public List<InsProduct> getRevocationInsProductList(Integer orderId) {
+ InsOrder insOrder = insOrderMapper.selectById(orderId);
+ if(Objects.isNull(insOrder)){
+ throw new RuntimeException("鏈壘鍒拌璁㈠崟");
+ }
+ String revocationInsProductIds = insOrder.getRevocationInsProductIds();
+ List<Integer> ids = new ArrayList<>();
+ if(StringUtils.isNotBlank(revocationInsProductIds)){
+ ids = Arrays.asList(revocationInsProductIds.split(",")).stream().map(Integer::parseInt).collect(Collectors.toList());
+ }
+ return baseMapper.getRevocationInsProductList(ids);
+ }
+
}
--
Gitblit v1.9.3