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