From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsSxtQushiController.java | 94 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 94 insertions(+), 0 deletions(-)
diff --git a/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsSxtQushiController.java b/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsSxtQushiController.java
new file mode 100644
index 0000000..fc74894
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsSxtQushiController.java
@@ -0,0 +1,94 @@
+package jnpf.limsController;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jnpf.limsEntity.LimsSxtQushiDataVo;
+import jnpf.limsEntity.LimsSxtQushiOptionsVo;
+import jnpf.limsEntity.LimsSxtQushiParam;
+import jnpf.limsService.LimsSxtQushiService;
+import jnpf.util.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeParseException;
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.List;
+
+@Tag(name = "lims姘寸郴缁熻秼鍔垮垎鏋�", description = "")
+@RestController
+@RequestMapping("/lims/biz/sxt/qushi")
+public class LimsSxtQushiController {
+
+ @Autowired
+ private LimsSxtQushiService qushiService;
+
+ @Operation(summary = "姘寸郴缁熻秼鍔跨瓫閫夐�夐」")
+ @GetMapping("/options")
+ public R<LimsSxtQushiOptionsVo> options(
+ @RequestParam(value = "yangpin_leixing_id", required = false) String yangpinLeixingId,
+ @RequestParam(value = "chejian_id", required = false) String chejianId,
+ @RequestParam(value = "quyangdian_ids", required = false) List<String> quyangdianIds) {
+ return R.success(qushiService.listOptions(
+ trimToNull(yangpinLeixingId), trimToNull(chejianId), normalizeIds(quyangdianIds)));
+ }
+
+ @Operation(summary = "姘寸郴缁熻秼鍔垮垎鏋愭暟鎹�")
+ @PostMapping("/data")
+ public R<LimsSxtQushiDataVo> data(@RequestBody LimsSxtQushiParam param) {
+ if (param == null) {
+ return R.error("璇锋眰鍙傛暟涓嶈兘涓虹┖");
+ }
+ if (!StringUtils.hasText(param.getYangpinLeixingId())) {
+ return R.error("鏍峰搧绫诲瀷涓嶈兘涓虹┖");
+ }
+ if (!StringUtils.hasText(param.getStartDate()) || !StringUtils.hasText(param.getEndDate())) {
+ return R.error("鏃ユ湡鑼冨洿涓嶈兘涓虹┖");
+ }
+ List<String> itemIds = normalizeIds(param.getJianyanXiangmuIds());
+ if (itemIds.isEmpty()) {
+ return R.error("妫�楠岄」鐩笉鑳戒负绌�");
+ }
+
+ LocalDate startDate;
+ LocalDate endDate;
+ try {
+ startDate = LocalDate.parse(param.getStartDate().trim());
+ endDate = LocalDate.parse(param.getEndDate().trim());
+ } catch (DateTimeParseException e) {
+ return R.error("鏃ユ湡鏍煎紡涓嶆纭�");
+ }
+ if (startDate.isAfter(endDate)) {
+ return R.error("寮�濮嬫棩鏈熶笉鑳藉ぇ浜庣粨鏉熸棩鏈�");
+ }
+
+ param.setYangpinLeixingId(param.getYangpinLeixingId().trim());
+ param.setChejianId(trimToNull(param.getChejianId()));
+ param.setJianyanXiangmuIds(itemIds);
+ param.setQuyangdianIds(normalizeIds(param.getQuyangdianIds()));
+ return R.success(qushiService.listData(param, startDate, endDate));
+ }
+
+ private List<String> normalizeIds(List<String> ids) {
+ LinkedHashSet<String> result = new LinkedHashSet<>();
+ if (ids != null) {
+ for (String id : ids) {
+ if (StringUtils.hasText(id)) {
+ result.add(id.trim());
+ }
+ }
+ }
+ return new ArrayList<>(result);
+ }
+
+ private String trimToNull(String value) {
+ return StringUtils.hasText(value) ? value.trim() : null;
+ }
+}
--
Gitblit v1.8.0