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/LimsFlowController.java | 300 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 300 insertions(+), 0 deletions(-)
diff --git a/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsFlowController.java b/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsFlowController.java
new file mode 100644
index 0000000..dc3253e
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsFlowController.java
@@ -0,0 +1,300 @@
+package jnpf.limsController;
+
+import jnpf.audit.sdk.annotation.AuditLog;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jnpf.base.UserInfo;
+import jnpf.enums.LimsSampleEnum;
+import jnpf.limsEntity.LimsApplyTestEntity;
+import jnpf.limsEntity.LimsSampleInfoEntity;
+import jnpf.limsEntity.LimsSamplingRecordEntity;
+import jnpf.limsEntity.LimsTestTaskEntity;
+import jnpf.limsModel.LimsApplyTestModel;
+import jnpf.limsService.*;
+import jnpf.permission.entity.UserEntity;
+import jnpf.util.DateUtil;
+import jnpf.util.R;
+import jnpf.util.UserProvider;
+import kotlin.Result;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j // 娣诲姞鏃ュ織璁板綍
+@Tag(name = "lims妫�楠屾祦绋�", description = "lims妫�楠屾祦绋嬮�氱敤鏂规硶")
+@RestController
+@RequestMapping("/lims")
+@RequiredArgsConstructor
+public class LimsFlowController {
+
+ @Autowired
+ private LimsApplyTestItemService limsApplyTestItemService;
+ @Autowired
+ private LimsApplyTestService limsApplyTestService;
+ @Autowired
+ private LimsSampleInfoService limsSampleInfoService;
+ @Autowired
+ private LimsSamplingRecordService limsSamplingRecordService;
+ @Autowired
+ private LimsTestTaskService limsTestTaskService;
+
+ /**
+ * 鏍峰搧璇锋 --銆� 鐢熸垚鏍峰搧淇℃伅璁板綍
+ * @param
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @PostMapping("/APPLY_CHECK")
+ @AuditLog(action = "APPLY_CHECK", label = "鐢宠妫�楠�", bizType = "LIMS_LEGACY",
+ bizCodeExpr = "#result.success ? 'LEGACY_APPLY_CHECK' : ''", targetTable = "lims_apply_test",
+ targetIdExpr = "#limsApplyTestEntity.id", diff = true,
+ entityClass = LimsApplyTestEntity.class)
+ public R<String> creatLimsSampleInfo(@RequestBody LimsApplyTestEntity limsApplyTestEntity) {
+
+ /* LimsApplyTestEntity limsApplyTestEntity = new LimsApplyTestEntity();
+
+ System.out.println(limsApplyTestModel);*/
+
+ LambdaQueryWrapper<LimsApplyTestEntity> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(LimsApplyTestEntity::getId, limsApplyTestEntity.getId());
+ // 鏌ヨ妫�楠屼俊鎭�
+ limsApplyTestEntity = limsApplyTestService.getOne(queryWrapper);
+ String applyStatus = limsApplyTestEntity.getApplyStatus();
+ // 鍒ゆ柇妫�楠岀姸鎬� 0 宸叉彁浜� 1 寰呭畾 2 鎴愬姛璇锋锛堢敓鎴愬搴旀牱鍝佷俊鎭暟鎹級
+ if ("2".equals(applyStatus)) {
+ return R.error("璇锋鍗曚笉鑳介噸澶嶆彁浜�");
+ }
+
+ // 濡傛灉鐘舵�侀儴浣�2 鍒欑敓鎴愬搴旀暟鎹�
+ limsApplyTestService.createSampleInfo(limsApplyTestEntity);
+
+ return R.success();
+ }
+
+ /**
+ * 閫氱敤淇敼鐘舵�佹柟娉�
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Operation(summary = "鏍峰搧鍙栨牱")
+ @Parameter(name = "modelId", description = "妯℃澘id")
+ @Parameter(name = "id", description = "鏁版嵁id")
+ @Parameter(name = "enumName", description = "娴佺▼鑺傜偣")
+ @PostMapping("/SAMPLE_RECORD")
+ @AuditLog(action = "SAMPLE_RECORD", label = "鍙栨牱璁板綍", bizType = "LIMS_LEGACY",
+ bizCodeExpr = "#result.success ? #params['id'] : ''", targetTable = "lims_sampling_record",
+ targetIdExpr = "#params['id']", diff = true, entityClass = LimsSamplingRecordEntity.class)
+ public R<String> limsFlowUpdateStatus(@RequestBody Map<String, String> params) {
+
+ String id = params.get("id");
+ String enumName = params.get("enumName");
+
+ // 鑾峰彇瀵瑰簲鏋氫妇淇℃伅
+ LimsSampleEnum limsSampleEnum = LimsSampleEnum.valueOf(enumName);
+ // 鑾峰彇琛ㄤ俊鎭�
+ String tableName = limsSampleEnum.getTableName();
+
+ // 鑾峰彇鍙栨牱淇℃伅琛紝骞朵慨鏀圭姸鎬�
+ LimsSamplingRecordEntity record = limsSamplingRecordService.getById(id);
+ // 宸插彇鏍凤紝寰呮帴鏍�
+ record.setRecordStatus("1");
+ limsSamplingRecordService.updateById(record);
+
+ String sampleId = record.getSampleId();
+ // 鏌ヨ鏍峰搧淇℃伅
+ LambdaQueryWrapper<LimsSampleInfoEntity> sampleInfoQueryWrapper = new LambdaQueryWrapper<>();
+ sampleInfoQueryWrapper.eq(LimsSampleInfoEntity::getId, sampleId);
+ LimsSampleInfoEntity sampleInfo = limsSampleInfoService.getOne(sampleInfoQueryWrapper);
+ sampleInfo.setSampleStatus(limsSampleEnum.getCode());
+ limsSampleInfoService.updateById(sampleInfo);
+
+ return R.success();
+ }
+
+ /**
+ * 閫氱敤淇敼鐘舵�佹柟娉�
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Operation(summary = "鏍峰搧鎺ユ牱")
+ @Parameter(name = "modelId", description = "妯℃澘id")
+ @Parameter(name = "id", description = "鏁版嵁id")
+ @Parameter(name = "enumName", description = "娴佺▼鑺傜偣")
+ @PostMapping("/SAMPLE_RECEIVING")
+ @AuditLog(action = "SAMPLE_RECEIVING", label = "鏍峰搧鎺ユ敹", bizType = "LIMS_LEGACY",
+ bizCodeExpr = "#result.success ? #params['id'] : ''", targetTable = "lims_sampling_record",
+ targetIdExpr = "#params['id']", diff = true, entityClass = LimsSamplingRecordEntity.class)
+ public R<String> limsFlowUpdateStatusByReceive(@RequestBody Map<String, String> params) {
+
+ String id = params.get("id");
+ String enumName = params.get("enumName");
+
+ // 鑾峰彇瀵瑰簲鏋氫妇淇℃伅
+ LimsSampleEnum limsSampleEnum = LimsSampleEnum.valueOf(enumName);
+ // 鑾峰彇琛ㄤ俊鎭�
+ String tableName = limsSampleEnum.getTableName();
+
+ // 鑾峰彇鍙栨牱淇℃伅琛紝骞朵慨鏀圭姸鎬�
+ LimsSamplingRecordEntity record = limsSamplingRecordService.getById(id);
+ // 宸插彇鏍凤紝寰呮帴鏍�
+ record.setRecordStatus("2");
+ limsSamplingRecordService.updateById(record);
+
+ String sampleId = record.getSampleId();
+ // 鏌ヨ鏍峰搧淇℃伅
+ LambdaQueryWrapper<LimsSampleInfoEntity> sampleInfoQueryWrapper = new LambdaQueryWrapper<>();
+ sampleInfoQueryWrapper.eq(LimsSampleInfoEntity::getId, sampleId);
+ LimsSampleInfoEntity sampleInfo = limsSampleInfoService.getOne(sampleInfoQueryWrapper);
+ sampleInfo.setSampleStatus(limsSampleEnum.getCode());
+ limsSampleInfoService.updateById(sampleInfo);
+
+ // 璁剧疆椤圭洰寰呴鍙栨垨寰呭垎閰�
+ LambdaUpdateWrapper<LimsTestTaskEntity> taskQueryWrapper = new LambdaUpdateWrapper<>();
+ taskQueryWrapper.eq(LimsTestTaskEntity::getSampleId, sampleId);
+ taskQueryWrapper.set(LimsTestTaskEntity::getCheckStatus,"2");
+ limsTestTaskService.update(taskQueryWrapper);
+
+
+ return R.success();
+ }
+
+ /**
+ * 閫氱敤淇敼鐘舵�佹柟娉�
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Operation(summary = "椤圭洰棰嗗彇")
+ @Parameter(name = "modelId", description = "妯℃澘id")
+ @Parameter(name = "ids", description = "鏁版嵁ids")
+ @Parameter(name = "enumName", description = "娴佺▼鑺傜偣")
+ @PostMapping("/PROJECT_CLAIM")
+ @AuditLog(action = "PROJECT_CLAIM", label = "椤圭洰璁ら", bizType = "LIMS_LEGACY",
+ bizCodeExpr = "#result.success ? 'LEGACY_PROJECT_CLAIM' : ''", targetTable = "lims_test_task",
+ targetIdExpr = "#params['ids'].split(',')[0]", diff = true,
+ targetIdsExpr = "#params['ids'].split(',')",
+ entityClass = LimsTestTaskEntity.class)
+ public R<String> limsItemSelf(@RequestBody Map<String, String> params) {
+ String ids = params.get("ids");
+ String enumName = params.get("enumName");
+ LimsSampleEnum limsSampleEnum = LimsSampleEnum.valueOf(enumName);
+
+ // 鑾峰彇褰撳墠鐢ㄦ埛
+ UserInfo userInfo = UserProvider.getUser();
+ // 鑾峰彇褰撳墠鐢ㄦ埛ID
+ String userId = userInfo.getUserId();
+ // 鏇存柊
+ LambdaUpdateWrapper<LimsTestTaskEntity> taskUpdateWrapper = new LambdaUpdateWrapper<>();
+ taskUpdateWrapper.in(LimsTestTaskEntity::getSampleId, ids);
+ taskUpdateWrapper.set(LimsTestTaskEntity::getCheckStatus, limsSampleEnum.getItemCode());
+ taskUpdateWrapper.set(LimsTestTaskEntity::getCheckUser, userId);
+ taskUpdateWrapper.set(LimsTestTaskEntity::getGetCheckTime, DateUtil.getNow());
+ limsTestTaskService.update(taskUpdateWrapper);
+
+ List<LimsTestTaskEntity> limsTestTaskEntities = limsTestTaskService.listByIds(Arrays.asList(ids.split(",")));
+ // 渚垮埄淇敼鏍峰搧鐘舵��
+ limsTestTaskEntities.forEach(limsTestTaskEntity -> {
+ LambdaUpdateWrapper<LimsSampleInfoEntity> sampleInfoUpdateWrapper = new LambdaUpdateWrapper<>();
+ sampleInfoUpdateWrapper.eq(LimsSampleInfoEntity::getId, limsTestTaskEntity.getSampleId());
+ sampleInfoUpdateWrapper.set(LimsSampleInfoEntity::getSampleStatus, limsSampleEnum.getCode());
+ limsSampleInfoService.update(sampleInfoUpdateWrapper);
+ });
+
+ return R.success();
+ }
+
+ /**
+ * 閫氱敤淇敼鐘舵�佹柟娉�
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Operation(summary = "缁撴灉褰曞叆")
+ @Parameter(name = "modelId", description = "妯℃澘id")
+ @Parameter(name = "ids", description = "鏁版嵁ids")
+ @Parameter(name = "enumName", description = "娴佺▼鑺傜偣")
+ @PostMapping("/RESULT_RECORDING")
+ @AuditLog(action = "RESULT_RECORDING", label = "缁撴灉褰曞叆", bizType = "LIMS_LEGACY",
+ bizCodeExpr = "#result.success ? 'LEGACY_RESULT_RECORDING' : ''", targetTable = "lims_test_task",
+ targetIdExpr = "#params['ids'].split(',')[0]", diff = true,
+ targetIdsExpr = "#params['ids'].split(',')",
+ entityClass = LimsTestTaskEntity.class)
+ public R<String> limsItemResult(@RequestBody Map<String, String> params) {
+ String ids = params.get("ids");
+ String enumName = params.get("enumName");
+ LimsSampleEnum limsSampleEnum = LimsSampleEnum.valueOf(enumName);
+
+ // 鑾峰彇褰撳墠鐢ㄦ埛
+ UserInfo userInfo = UserProvider.getUser();
+ // 鑾峰彇褰撳墠鐢ㄦ埛ID
+ String userId = userInfo.getUserId();
+ // 鏇存柊
+ LambdaUpdateWrapper<LimsTestTaskEntity> taskUpdateWrapper = new LambdaUpdateWrapper<>();
+ taskUpdateWrapper.in(LimsTestTaskEntity::getSampleId, ids);
+ taskUpdateWrapper.set(LimsTestTaskEntity::getCheckStatus, limsSampleEnum.getItemCode());
+ taskUpdateWrapper.set(LimsTestTaskEntity::getCheckResultTime, DateUtil.getNow());
+ limsTestTaskService.update(taskUpdateWrapper);
+
+ List<LimsTestTaskEntity> limsTestTaskEntities = limsTestTaskService.listByIds(Arrays.asList(ids.split(",")));
+ // 渚垮埄淇敼鏍峰搧鐘舵��
+ limsTestTaskEntities.forEach(limsTestTaskEntity -> {
+ LambdaUpdateWrapper<LimsSampleInfoEntity> sampleInfoUpdateWrapper = new LambdaUpdateWrapper<>();
+ sampleInfoUpdateWrapper.eq(LimsSampleInfoEntity::getId, limsTestTaskEntity.getSampleId());
+ sampleInfoUpdateWrapper.set(LimsSampleInfoEntity::getSampleStatus, limsSampleEnum.getCode());
+ limsSampleInfoService.update(sampleInfoUpdateWrapper);
+ });
+
+ return R.success();
+ }
+
+ /**
+ * 閫氱敤淇敼鐘舵�佹柟娉�
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Operation(summary = "缁撴灉涓�绾у鏍�")
+ @Parameter(name = "modelId", description = "妯℃澘id")
+ @Parameter(name = "ids", description = "鏁版嵁ids")
+ @Parameter(name = "enumName", description = "娴佺▼鑺傜偣")
+ @PostMapping("/RESULT_REVIEW")
+ @AuditLog(action = "RESULT_REVIEW", label = "缁撴灉澶嶆牳", bizType = "LIMS_LEGACY",
+ bizCodeExpr = "#result.success ? 'LEGACY_RESULT_REVIEW' : ''", targetTable = "lims_test_task",
+ targetIdExpr = "#params['ids'].split(',')[0]", diff = true,
+ targetIdsExpr = "#params['ids'].split(',')",
+ entityClass = LimsTestTaskEntity.class)
+ public R<String> limsItemReview(@RequestBody Map<String, String> params) {
+ String ids = params.get("ids");
+ String enumName = params.get("enumName");
+ LimsSampleEnum limsSampleEnum = LimsSampleEnum.valueOf(enumName);
+
+ // 鑾峰彇褰撳墠鐢ㄦ埛
+ UserInfo userInfo = UserProvider.getUser();
+ // 鑾峰彇褰撳墠鐢ㄦ埛ID
+ String userId = userInfo.getUserId();
+ // 鏇存柊
+ LambdaUpdateWrapper<LimsTestTaskEntity> taskUpdateWrapper = new LambdaUpdateWrapper<>();
+ taskUpdateWrapper.in(LimsTestTaskEntity::getSampleId, ids);
+ taskUpdateWrapper.set(LimsTestTaskEntity::getCheckStatus, limsSampleEnum.getItemCode());
+ taskUpdateWrapper.set(LimsTestTaskEntity::getReviewUser, userId);
+ taskUpdateWrapper.set(LimsTestTaskEntity::getReviewTime, DateUtil.getNow());
+ limsTestTaskService.update(taskUpdateWrapper);
+
+ List<LimsTestTaskEntity> limsTestTaskEntities = limsTestTaskService.listByIds(Arrays.asList(ids.split(",")));
+ // 渚垮埄淇敼鏍峰搧鐘舵��
+ limsTestTaskEntities.forEach(limsTestTaskEntity -> {
+ LambdaUpdateWrapper<LimsSampleInfoEntity> sampleInfoUpdateWrapper = new LambdaUpdateWrapper<>();
+ sampleInfoUpdateWrapper.eq(LimsSampleInfoEntity::getId, limsTestTaskEntity.getSampleId());
+ sampleInfoUpdateWrapper.set(LimsSampleInfoEntity::getSampleStatus, limsSampleEnum.getCode());
+ limsSampleInfoService.update(sampleInfoUpdateWrapper);
+ });
+
+ return R.success();
+ }
+}
--
Gitblit v1.8.0