From 09d24a4d5009b1f6b792b983970c19f8584fdc7b Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期四, 11 一月 2024 17:01:07 +0800
Subject: [PATCH] 锁定和解锁

---
 src/main/java/com/whyc/service/TechnicalSpecificationService.java |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/whyc/service/TechnicalSpecificationService.java b/src/main/java/com/whyc/service/TechnicalSpecificationService.java
index 4ff43f3..bc47f23 100644
--- a/src/main/java/com/whyc/service/TechnicalSpecificationService.java
+++ b/src/main/java/com/whyc/service/TechnicalSpecificationService.java
@@ -1,5 +1,6 @@
 package com.whyc.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.whyc.dto.Response;
@@ -188,10 +189,33 @@
         if(!userName.equals(specificationInDB.getOwner())){
             return new Response().set(1,false,"闈炶礋璐d汉鏃犳硶瑙i攣");
         }
-        //瀛樺湪瑙i攣鐗堟湰,鏃犳硶瑙i攣
+        //鏍¢獙瑙i攣鏃�,瀛樺湪瑙i攣鐗堟湰,鏃犳硶瑙i攣
+        if(lockFlag == 0){
+            TechnicalSpecification availableVersion = getAvailableVersion(specificationInDB.getApplyMaterialCode(),specificationInDB.getApplyCustomCode());
+            if(availableVersion!=null){
+                if(!availableVersion.getOwner().equals(userName)) {
+                    return new Response().set(1, false, "瀛樺湪鐢熸晥鐗堟湰,鏃犳硶瑙i攣. 鐩墠鐢熸晥鐗堟湰璐熻矗浜轰负" + availableVersion.getOwner() + ",鐢熸晥鐗堟湰涓�:" + availableVersion.getVersion());
+                }else{
+                    //閿佸畾鐩墠鐢熸晥鐗堟湰
+                    availableVersion.setLockFlag(1);
+                    availableVersion.setLockReason("鏂扮増鏈В閿�,姝ゆ棫鐗堟湰閿佸畾");
+                    mapper.updateById(availableVersion);
+                }
+            }
+        }
+        specificationInDB.setLockFlag(lockFlag);
+        mapper.updateById(specificationInDB);
 
-        return null;
+        return new Response().set(1, true, "鏇存柊瀹屾垚");
+    }
 
+    private TechnicalSpecification getAvailableVersion(String applyMaterialCode, String applyCustomCode) {
+        QueryWrapper<TechnicalSpecification> query = Wrappers.query();
+        query.eq("apply_material_code",applyMaterialCode);
+        query.eq("apply_custom_code",applyCustomCode);
+        query.eq("lock_flag",0);
+        query.last(" limit 1");
+        return mapper.selectOne(query);
     }
 
     private TechnicalSpecification get(int id){

--
Gitblit v1.9.1