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