From 61f34419e094f2363276d614a960b379cc456482 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期二, 20 五月 2025 10:37:15 +0800
Subject: [PATCH] 业务代码合并
---
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java | 9 +
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java | 6
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java | 10 +
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/FinishProductSpotCheckServiceImpl.java | 2
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderPlanService.java | 3
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java | 6 +
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto.java | 4
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java | 3
inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 14 ++
inspect-server/src/main/java/com/ruoyi/inspect/dto/SaveInsContextDto.java | 22 ++-
inspect-server/src/main/resources/static/report-template.docx | 0
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | 187 +++++++++++++++++++++++--------
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 63 +++++-----
13 files changed, 233 insertions(+), 96 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
index 880fad5..5e20dcd 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -267,4 +267,10 @@
return Result.success();
}
+ @ApiOperation(value = "鏌ヨ褰撳墠鏃堕棿鏄惁娌℃湁璇ユ娴嬮」鐨勬娊鏍疯鍒�")
+ @PostMapping("/judgeNotSpotCheckOrder")
+ public Result<?> judgeNotSpotCheckOrder(@RequestBody InsPlaceOrderDto insPlaceOrderDto) {
+ return insOrderService.judgeNotSpotCheckOrder(insPlaceOrderDto.getSampleList(), insPlaceOrderDto.getInsOrder());
+ }
+
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
index 48acce4..7ef8737 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
@@ -114,8 +114,7 @@
@ApiOperation(value = "淇濆瓨妫�楠屽唴瀹�")
@PostMapping("/saveInsContext")
public Result<?> saveInsContext(@RequestBody SaveInsContextDto saveInsContextDto) {
- Map<String, Object> param2 = JSON.parseObject(saveInsContextDto.getParam(), Map.class);
- insOrderPlanService.saveInsContext(param2, saveInsContextDto.getCurrentTable(), saveInsContextDto.getSampleId(), saveInsContextDto.getOrderId(), saveInsContextDto.getSonLaboratory());
+ insOrderPlanService.saveInsContext(saveInsContextDto);
return Result.success();
}
@@ -244,7 +243,8 @@
@GetMapping("/getBindingProductByProductId")
public Result<List<InsProduct>> getBindingProductByProductId(Integer productId) {
return Result.success(insProductService.list(Wrappers.<InsProduct>lambdaQuery()
- .eq(InsProduct::getBindingProductId, productId)));
+ .eq(InsProduct::getBindingProductId, productId)
+ .orderByAsc(InsProduct::getSort)));
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto.java
index 1ccf266..87e9b9a 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto.java
@@ -13,8 +13,6 @@
@ApiModelProperty("妫�楠岄」鐩�")
private List<InsProduct> insProduct;
-// private List<BushingDto> bushing;
-
@ApiModelProperty("瀛愭牱鍝侀厤缃�")
private List<SampleProductDto> childSampleList;
@@ -23,8 +21,6 @@
@ApiModelProperty("杈呭姪绾胯姱閰嶇疆")
private InsulatingDto auxiliaryWireCore;
-
-// private SheathDto sheath;
@ApiModelProperty("妫�楠屼汉")
private String checkName;
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SaveInsContextDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SaveInsContextDto.java
index f2e0ee7..ee4bd28 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SaveInsContextDto.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SaveInsContextDto.java
@@ -1,19 +1,29 @@
package com.ruoyi.inspect.dto;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+/**
+ * 淇濆瓨妯℃澘浼犲弬
+ */
@Data
-//淇濆瓨妫�楠屽唴瀹逛紶鍙�
public class SaveInsContextDto {
- //妯℃澘鍐呭
+ @ApiModelProperty("妯℃澘鍐呭")
private String param;
- //褰撳墠妯℃澘id
+
+ @ApiModelProperty("褰撳墠妯℃澘id")
private Integer currentTable;
- //褰撳墠鏍峰搧id
+
+ @ApiModelProperty("褰撳墠鏍峰搧id")
private Integer sampleId;
- //褰撳墠璁㈠崟id
+
+ @ApiModelProperty("褰撳墠璁㈠崟id")
private Integer orderId;
- //瀛愯瘯楠屽
+
+ @ApiModelProperty("瀛愯瘯楠屽")
private String sonLaboratory;
+
+ @ApiModelProperty("鏄惁娌℃湁妫�楠屽��")
+ private Integer isNoTestValue;
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
index 94a172a..7c91fc1 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
@@ -5,7 +5,6 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.pojo.StructureTestObject;
-import com.ruoyi.inspect.dto.CostStatisticsDto;
import com.ruoyi.inspect.dto.SampleOrderDto;
import com.ruoyi.inspect.dto.SampleProductDto2;
import com.ruoyi.inspect.dto.SampleProductExportDto;
@@ -136,4 +135,13 @@
* @return
*/
List<SampleOrderDto> getInsOrderExportByIds(@Param("orderIds") List<String> orderIds);
+
+ /**
+ * 鏌ヨ褰撳墠鏃堕棿鏄惁鏈夎妫�娴嬮」鐨勬娊鏍疯鍒掕鍗�
+ * @param itmeId 鏍峰搧Id
+ * @param startTime 寮�濮嬫椂闂�
+ * @param endTime 缁撴潫鏃堕棿
+ * @return
+ */
+ Integer selectNotSpotCheckOrder(@Param("itmeId") Integer itmeId, @Param("startTime") String startTime, @Param("endTime") String endTime);
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderPlanService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderPlanService.java
index b2b200d..1caa282 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderPlanService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderPlanService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.inspect.dto.InsOrderPlanDTO;
import com.ruoyi.inspect.dto.InsOrderPlanProductDto;
+import com.ruoyi.inspect.dto.SaveInsContextDto;
import com.ruoyi.inspect.pojo.InsOrderFactoryVerify;
import com.ruoyi.inspect.pojo.InsOrderFile;
import com.ruoyi.inspect.pojo.InsProduct;
@@ -25,7 +26,7 @@
boolean claimInsOrderPlan(InsOrderPlanDTO entity);
- void saveInsContext(Map<String, Object> insContext,Integer currentTable,Integer sampleId,Integer orderId,String sonLaboratory);
+ void saveInsContext(SaveInsContextDto saveInsContextDto);
Map<String, Object> doInsOrder(Integer id, String laboratory);
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
index a0a8192..ab022c5 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.basic.pojo.StandardProductList;
+import com.ruoyi.common.core.domain.Result;
import com.ruoyi.inspect.pojo.InsOrder;
import com.ruoyi.inspect.pojo.InsSample;
import com.ruoyi.inspect.pojo.InsUnqualifiedRetestProduct;
@@ -114,4 +115,12 @@
* @param insSample
*/
void updateSampleModel(InsSample insSample);
+
+ /**
+ * 鏌ヨ褰撳墠鏃堕棿鏄惁娌℃湁璇ユ娴嬮」鐨勬娊鏍疯鍒�
+ * @param sampleList
+ * @param insOrder
+ * @return
+ */
+ Result judgeNotSpotCheckOrder(List<SampleProductDto> sampleList, InsOrder insOrder);
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/FinishProductSpotCheckServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/FinishProductSpotCheckServiceImpl.java
index 3ac468f..357d1c7 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/FinishProductSpotCheckServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/FinishProductSpotCheckServiceImpl.java
@@ -476,6 +476,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("瀵煎嚭澶辫触");
@@ -669,6 +670,7 @@
template.write(os);
os.flush();
os.close();
+ inputStream.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index 68ad415..8d29eee 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -361,15 +361,16 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void saveInsContext(Map<String, Object> insContext, Integer currentTable, Integer currentSampleId, Integer orderId, String sonLaboratory) {
+ public void saveInsContext(SaveInsContextDto saveInsContextDto) {
+ Map<String, Object> insContext = JSON.parseObject(saveInsContextDto.getParam(), Map.class);
Integer userId = SecurityUtils.getUserId().intValue();
- InsSample insSample = insSampleMapper.selectById(currentSampleId);
+ InsSample insSample = insSampleMapper.selectById(saveInsContextDto.getSampleId());
insContext.forEach((k, v) -> {
JSONObject jo = JSON.parseObject(JSON.toJSONString(v));
InsProduct insProduct = new InsProduct();
insProduct.setId(Integer.parseInt(k));
InsProduct product = insProductMapper.selectById(insProduct.getId());
- if (currentTable.equals(product.getTemplateId()) && currentSampleId.equals(product.getInsSampleId())) {
+ if (saveInsContextDto.getCurrentTable().equals(product.getTemplateId()) && saveInsContextDto.getSampleId().equals(product.getInsSampleId())) {
List<InsProductResult> oldResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
.eq(InsProductResult::getInsProductId, insProduct.getId()));
InsProductResult newResult = new InsProductResult();
@@ -502,22 +503,31 @@
// 娣诲姞宸ユ椂
// 鍒ゆ柇鏄惁鍙槸鍙備笌璁$畻鍊�, 鍙備笌璁$畻鍊煎疄闄呮病鏈夊~鍐�
if (StringUtils.isNotBlank(newResult.getInsValue()) && !newResult.getInsValue().equals("[]")) {
- InsProduct finalInsProduct = insProductMapper.selectById(product.getId());
threadPoolTaskExecutor.execute(() -> {
+ InsProduct finalInsProduct = insProductMapper.selectById(product.getId());
InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
this.addAuxiliary(userId, finalInsProduct, insOrder);
});
+ } else {
+ // 鍒ゆ柇鏄惁鏄病鏈夋楠屽�肩殑鍐呭
+ if (saveInsContextDto.getIsNoTestValue() != null && saveInsContextDto.getIsNoTestValue() == 1) {
+ threadPoolTaskExecutor.execute(() -> {
+ InsProduct finalInsProduct = insProductMapper.selectById(product.getId());
+ InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+ this.addAuxiliary(userId, finalInsProduct, insOrder);
+ });
+ }
}
}
});
String sampleIdStr = insContext.keySet().stream().findFirst().orElse(null);
if (sampleIdStr != null) {
- int count = insProductMapper.selectInsProductCountByOrderId(orderId);
+ int count = insProductMapper.selectInsProductCountByOrderId(saveInsContextDto.getOrderId());
if (count == 0) {
insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate()
- .eq(InsOrderState::getInsOrderId, orderId)
- .eq(InsOrderState::getLaboratory, sonLaboratory)
+ .eq(InsOrderState::getInsOrderId, saveInsContextDto.getOrderId())
+ .eq(InsOrderState::getLaboratory, saveInsContextDto.getSonLaboratory())
.set(InsOrderState::getInsState, 2));
}
}
@@ -605,20 +615,6 @@
*/
private void getTemplateThing(InsOrder order, List<InsProduct> insProducts) {
Set<Integer> set = new HashSet<>();
- // 妫�楠岄」鍒嗙被+妫�楠岄」+妫�楠屽瓙椤圭殑鎷兼帴
-// List<String> itemNameList = insProducts.stream().map(insProduct -> {
-// String itemName = "";
-// if (StringUtils.isNotBlank(insProduct.getInspectionItemClass())) {
-// itemName += insProduct.getInspectionItemClass().trim();
-// }
-// if (StringUtils.isNotBlank(insProduct.getInspectionItem())) {
-// itemName += insProduct.getInspectionItem().trim();
-// }
-// if (StringUtils.isNotBlank(insProduct.getInspectionItemSubclass())) {
-// itemName += insProduct.getInspectionItemSubclass().trim();
-// }
-// return itemName;
-// }).collect(Collectors.toList());
// 鏌ヨ璁㈠崟鐘舵�佸垽鏂槸鍚︽槸鏌ュ巻鍙叉ā鏉�
if (order.getIsFirstSubmit() != null && order.getIsFirstSubmit().equals(1)) {
InsOrderState insOrderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
@@ -822,10 +818,9 @@
// 5.鍙戦�佹秷鎭�氱煡缁欏鏍镐汉
// 鏌ヨ褰撳墠浜轰俊鎭�
Integer userId = SecurityUtils.getUserId().intValue();
- Map<String, String> userMap = insProductMapper.selectUserById(verifyUser);
- String userName = userMap.get("name");
+ String userName = insProductMapper.selectUserById(userId).get("name");
// 鏌ヨ鍙戦�佷汉淇℃伅
- String sendUserAccount = userMap.get("account");
+ String sendUserAccount = insProductMapper.selectUserById(verifyUser).get("account");
InformationNotification info = new InformationNotification();
info.setCreateUser(userName);
info.setMessageType("2");
@@ -967,13 +962,13 @@
* @param ifsInventoryQuantity
* @param order
*/
- private void addAnalysis(List<InsProduct> productList, IfsInventoryQuantity ifsInventoryQuantity, InsOrder order, String userName) {
+ private void addAnalysis(List<InsProduct> productList, IfsInventoryQuantity ifsInventoryQuantity, InsOrder order, String sendUserAccount) {
for (InsProduct insProduct : productList) {
// 鍒ゆ柇鏄惁鏄暟鍊肩被鍨�
if (insProduct.getInspectionValueType().equals("1") && insProduct.getInsResult().equals(1)) {
List<InsProductDeviationWarningDetail> insProductAnalysisDtoList = insProductMapper.selectAnalysis(insProduct, ifsInventoryQuantity.getSupplierName());
- if (insProductAnalysisDtoList.size() < 5) {
+ if (insProductAnalysisDtoList.size() < 10) {
continue;
}
@@ -1034,10 +1029,10 @@
message += "\n妫�楠岄」: " + insProduct.getInspectionItem() + insProduct.getInspectionItemSubclass();
message += "\n鍋忓樊瓒呰繃浜� 10%";
// 鍙戦�佺粰鎻愪氦浜�
- WxCpUtils.inform(userName, message, null);
-
- // todo: 鍙戦�佺粰妫�娴嬩腑蹇冧富浠�(鍥哄畾姝�)
- WxCpUtils.inform("ZT-004704", message, null);
+// WxCpUtils.inform(sendUserAccount, message, null);
+//
+// // todo: 鍙戦�佺粰妫�娴嬩腑蹇冧富浠�(鍥哄畾姝�)
+// WxCpUtils.inform("ZT-004704", message, null);
} catch (Exception e) {
e.printStackTrace();
log.error("鍋忓樊棰勮浼佷笟寰俊閫氱煡鎶ラ敊");
@@ -2015,7 +2010,7 @@
insReportMapper.delete(Wrappers.<InsReport>lambdaQuery()
.eq(InsReport::getInsOrderId, insOrder.getId()));
insReportMapper.insert(insReport);
-
+ inputStream.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -2568,6 +2563,7 @@
insReportMapper.delete(Wrappers.<InsReport>lambdaQuery()
.eq(InsReport::getInsOrderId, insOrder.getId()));
insReportMapper.insert(insReport);
+ inputStream.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -4242,6 +4238,11 @@
// 淇濆瓨鍒伴檮浠堕噷闈�
uploadFile(insOrderId, multipartFile);
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
index a1d32e7..ca9a5a9 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -13,15 +13,18 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
import com.ruoyi.basic.mapper.StandardProductListMapper;
+import com.ruoyi.basic.mapper.StructureItemParameterMapper;
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
import com.ruoyi.basic.pojo.StandardProductList;
+import com.ruoyi.basic.pojo.StructureItemParameter;
import com.ruoyi.basic.pojo.StructureTestObject;
import com.ruoyi.common.constant.InsOrderTypeConstants;
+import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.numgen.NumberGenerator;
import com.ruoyi.common.utils.*;
@@ -35,8 +38,6 @@
import com.ruoyi.inspect.service.InsProductService;
import com.ruoyi.inspect.service.InsSampleService;
import com.ruoyi.inspect.vo.InsOrderPrintingVo;
-import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
-import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursTemporaryService;
import com.ruoyi.system.mapper.UserMapper;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
@@ -82,14 +83,13 @@
private IfsApiUtils ifsApiUtils;
private SpotCheckQuarterItemMapper spotCheckQuarterItemMapper;
private StandardProductListMapper standardProductListMapper;
- private AuxiliaryOutputWorkingHoursTemporaryService auxiliaryOutputWorkingHoursTemporaryService;
+ private StructureItemParameterMapper structureItemParameterMapper;
//鑾峰彇妫�楠屼笅鍗曟暟鎹�
@Override
public IPage<SampleOrderDto> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto) {
- //todo: 鍙湅鎴戝垽鏂叏閮�,涓汉,缁勭粐鐨勬潈闄�
String laboratory = null;
// 鍒ゆ柇鏄惁鏄叏閮�
String isOrderAll = null;
@@ -155,53 +155,9 @@
spotCheckQuarterItemMapper.updateById(spotCheckQuarterItem);
}
- // 鍒涘缓宸ユ椂鏆傚瓨
- // 缂撳瓨鏍峰搧id, 缂栧彿map
-// addWorkingHoursTemporary(userId, insSamples, ids, order);
-
return 1;
}
- /**
- * 鍒涘缓宸ユ椂鏆傚瓨
- * @param userId
- * @param insSamples
- * @param ids
- * @param order
- */
- private void addWorkingHoursTemporary(Integer userId, List<InsSample> insSamples, List<Integer> ids, InsOrder order) {
- Map<Integer, String> sampleMap = insSamples.stream().collect(Collectors.toMap(InsSample::getId, InsSample::getSampleCode));
- List<InsProduct> insProductList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
- .in(InsProduct::getInsSampleId, ids)
- .eq(InsProduct::getState, 1));
- List<AuxiliaryOutputWorkingHoursTemporary> outputWorkingHours = insProductList.stream().map(insProduct -> {
- AuxiliaryOutputWorkingHoursTemporary auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHoursTemporary();
- auxiliaryOutputWorkingHours.setInspectionItemClass(insProduct.getInspectionItemClass());//妫�娴嬮」鍒嗙被
- auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤�
- auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤�
- auxiliaryOutputWorkingHours.setSample(sampleMap.get(insProduct.getInsSampleId()));//鏍峰搧缂栧彿
- auxiliaryOutputWorkingHours.setOrderId(order.getId());//璁㈠崟id
- auxiliaryOutputWorkingHours.setOrderNo(order.getEntrustCode());//闈炲姞鐝鎵樺崟鍙�
- auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃�
- auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
- auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//浜ч噺宸ユ椂
- auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡
- LocalDateTime localDateTime = LocalDateTime.now();
- DateTime parse = DateUtil.parse(localDateTime.format(formatter));
- auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡
- auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ
- auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉
- auxiliaryOutputWorkingHours.setPrice(insProduct.getPrice());//鍗曚环
- auxiliaryOutputWorkingHours.setSampleId(insProduct.getInsSampleId());//鏍峰搧id
- auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」id
-
- return auxiliaryOutputWorkingHours;
- }).collect(Collectors.toList());
- auxiliaryOutputWorkingHoursTemporaryService.saveBatch(outputWorkingHours);
- }
public static String getWeek(String dayStr) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -237,6 +193,19 @@
default:
return "鏈煡";
}
+ }
+
+
+ // 濡傛灉浣犱娇鐢� Java 8+锛屼篃鍙互鐢� Stream API 绠�鍖栦唬鐮侊細
+ public List<StandardProductList> findMissingItemsWithStream(List<StandardProductList> standardList,
+ List<InsProduct> insList) {
+ Set<Integer> insIds = insList.stream()
+ .map(InsProduct::getStructureItemParameterId)
+ .collect(Collectors.toSet());
+
+ return standardList.stream()
+ .filter(product -> !insIds.contains(product.getStructureItemParameterId()))
+ .collect(Collectors.toList());
}
@Override
@@ -906,6 +875,10 @@
// 淇敼妫�楠岄」
for (SampleProductDto sampleProductDto : insOrderUpdateDto.getSampleProduct()) {
+ insSampleService.update(Wrappers.<InsSample>lambdaUpdate()
+ .eq(InsSample::getId, sampleProductDto.getId())
+ .set(InsSample::getSpecialStandardMethod, sampleProductDto.getSpecialStandardMethod()));
+
insProductService.updateBatchById(sampleProductDto.getInsProduct());
}
@@ -1057,6 +1030,122 @@
.set(InsSample::getModel, insSample.getModel()));
}
+ /**
+ * 鏌ヨ褰撳墠鏃堕棿鏄惁娌℃湁璇ユ娴嬮」鐨勬娊鏍疯鍒�
+ * @param sampleList
+ * @param insOrder
+ * @return
+ */
+ @Override
+ public Result judgeNotSpotCheckOrder(List<SampleProductDto> sampleList, InsOrder insOrder) {
+ // todo: 涓嬪崟鍒ゆ柇鎶芥牱璁″垝鐨勫敮涓�鎬�
+ if (insOrder.getQuarterItemId() != null) {
+ Long quarterItemCount = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
+ .eq(InsOrder::getQuarterItemId, insOrder.getQuarterItemId())
+ .notIn(InsOrder::getState, -1 ,2 ,3));
+ if (quarterItemCount > 0) {
+ throw new ErrorException("璇ユ娊鏍疯鍒掑凡琚粦瀹氳繃");
+ }
+ }
+
+ // 鍒ゆ柇鏄惁鏄娊鏍锋娴�
+ if (insOrder.getOrderType().equals(InsOrderTypeConstants.SPOT_CHECK)) {
+ Set<String> monthMessageSet = new HashSet<>();
+ Set<String> quarterMessageSet = new HashSet<>();
+ Set<String> yearMessageSet = new HashSet<>();
+
+ String formatTime = "yyyy-MM-dd HH:mm:ss";
+ // 鏌ヨ褰撳墠鎵�鏈夋牱鍝佺殑妫�楠岄」
+ for (SampleProductDto sampleProductDto : sampleList) {
+ List<StandardProductList> standardProductList = getProductTreeBySampleId(sampleProductDto.getId());
+
+ Set<Integer> insIds = sampleProductDto.getInsProduct().stream()
+ .map(InsProduct::getStructureItemParameterId)
+ .collect(Collectors.toSet());
+
+ List<StandardProductList> productLists = standardProductList.stream()
+ .filter(product -> !insIds.contains(product.getStructureItemParameterId()))
+ .collect(Collectors.toList());
+
+ // 鏌ヨ妫�楠岄」鍩虹琛�, 鏌ヨ鏄惁鏈夋湀搴�, 瀛e害, 骞村害鐨勬楠岄」
+ List<StructureItemParameter> itemParameterList = structureItemParameterMapper.selectList(Wrappers.<StructureItemParameter>lambdaQuery()
+ .in(StructureItemParameter::getId, productLists.stream().map(StandardProductList::getStructureItemParameterId).collect(Collectors.toList())));
+
+ for (StructureItemParameter item : itemParameterList) {
+ if (StringUtils.isNotBlank(item.getSpotCheckType())) {
+ switch (item.getSpotCheckType()) {
+ case "1": // 鏈堝害
+ // 鏌ヨ褰撴湀鏄惁鏈夎妫�娴嬮」鐨勬娊鏍疯鍒�
+ // 褰撴湀寮�濮嬫椂闂�
+ DateTime monthStart = DateUtil.beginOfMonth(DateUtil.date());
+ String monthStartTime = monthStart.toString(formatTime);
+ // 褰撴湀缁撴潫鏃堕棿
+ DateTime monthEnd = DateUtil.endOfMonth(DateUtil.date());
+ String monthEndTime = monthEnd.toString(formatTime);
+ Integer count = insOrderMapper.selectNotSpotCheckOrder(item.getId(), monthStartTime, monthEndTime);
+ if (count == 0) {
+ String monthMessage = item.getInspectionItemClass() +
+ item.getInspectionItem() +
+ item.getInspectionItemSubclass();
+ monthMessageSet.add(monthMessage);
+ }
+ break;
+ case "2": // 瀛e害
+ DateTime quarterStart = DateUtil.beginOfQuarter(DateUtil.date());
+ String quarterStartTime = quarterStart.toString(formatTime);
+ // 褰撴湀缁撴潫鏃堕棿
+ DateTime quarterEnd = DateUtil.endOfQuarter(DateUtil.date());
+ String quarterEndTime = quarterEnd.toString(formatTime);
+ Integer quarterCount = insOrderMapper.selectNotSpotCheckOrder(item.getId(), quarterStartTime, quarterEndTime);
+ if (quarterCount == 0) {
+ String quarterMessage = item.getInspectionItemClass() +
+ item.getInspectionItem() +
+ item.getInspectionItemSubclass();
+ quarterMessageSet.add(quarterMessage);
+ }
+
+ break;
+ case "3": // 骞村害
+ DateTime yearStart = DateUtil.beginOfQuarter(DateUtil.date());
+ String yearStartTime = yearStart.toString(formatTime);
+ // 褰撴湀缁撴潫鏃堕棿
+ DateTime yearEnd = DateUtil.endOfQuarter(DateUtil.date());
+ String yearEndTime = yearEnd.toString(formatTime);
+ Integer yearCount = insOrderMapper.selectNotSpotCheckOrder(item.getId(), yearStartTime, yearEndTime);
+ if (yearCount == 0) {
+ String yearMessage = item.getInspectionItemClass() +
+ item.getInspectionItem() +
+ item.getInspectionItemSubclass();
+ yearMessageSet.add(yearMessage);
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ String message = "";
+ if (CollectionUtils.isNotEmpty(monthMessageSet)) {
+ message += StrUtil.format("<p>妫�楠岄」<span style=\"color: red\">{}</span>褰撴湀杩樻湭杩涜鎶芥牱妫�娴�, 璇锋煡鐪嬫槸鍚﹂渶瑕佹坊鍔犲綋鍓嶆楠岄」</p>", CollUtil.join(monthMessageSet, ", "));
+ }
+
+ if (CollectionUtils.isNotEmpty(quarterMessageSet)) {
+ message += StrUtil.format("<p>妫�楠岄」<span style=\"color: red\">{}</span>褰撳墠瀛e害杩樻湭杩涜鎶芥牱妫�娴�, 璇风湅鏄惁闇�瑕佹坊鍔犲綋鍓嶆楠岄」</p>", CollUtil.join(quarterMessageSet, ", "));
+ }
+
+ if (CollectionUtils.isNotEmpty(yearMessageSet)) {
+ message += StrUtil.format("<p>妫�楠岄」<span style=\"color: red\">{}</span>浠婂勾杩樻湭杩涜鎶芥牱妫�娴�, 璇风湅鏄惁闇�瑕佹坊鍔犲綋鍓嶆楠岄」</p>", CollUtil.join(yearMessageSet, ", "));
+ }
+
+ if (StringUtils.isNotBlank(message)) {
+ return Result.success(false, message);
+ }
+ }
+ return Result.success(true);
+
+ }
+
}
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 6654ad3..2f7409b 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
@@ -135,7 +135,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;
}
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index ad38e37..78234d5 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -455,4 +455,18 @@
GROUP BY io.id,type
order by type desc,io.id desc
</select>
+
+ <!-- 鏌ヨ褰撳墠鏃堕棿鏄惁鏈夎妫�娴嬮」鐨勬娊鏍疯鍒掕鍗� -->
+ <select id="selectNotSpotCheckOrder" resultType="java.lang.Integer">
+ select count(*)
+ from (select io.id
+ from ins_product ip
+ left join ins_sample is2 on is2.id = ip.ins_sample_id
+ left join ins_order io on io.id = is2.ins_order_id
+ left join spot_check_quarter_item scqi on scqi.quarter_item_id = io.quarter_item_id
+ where io.quarter_item_id is not null
+ and scqi.spot_check_time between #{startTime} and #{endTime}
+ and ip.structure_item_parameter_id = #{itmeId}
+ group by io.id) a
+ </select>
</mapper>
diff --git a/inspect-server/src/main/resources/static/report-template.docx b/inspect-server/src/main/resources/static/report-template.docx
index 8b2b220..0502472 100644
--- a/inspect-server/src/main/resources/static/report-template.docx
+++ b/inspect-server/src/main/resources/static/report-template.docx
Binary files differ
--
Gitblit v1.9.3