市场法规清单发布添加校验

This commit is contained in:
梁琦涛
2024-07-12 14:37:30 +08:00
parent b451a7caf3
commit c2ac3c8da3
3 changed files with 46 additions and 1 deletions
@@ -26,4 +26,11 @@ public interface IProcessMarketStandardReleaseService extends IService<ProcessMa
String generate(ProcessMarketStandardRelease scc, MultipartFile modelFile, MultipartFile splitFile) throws Exception;
void flowListener(DelegateExecution delegateExecution);
/**
* 根据id 判断数据的流程状态
* @param id
* @return boolean true:没有流程或流程已结束 false:有正在流转的流程
*/
boolean checkProcessStatus(String id);
}
@@ -34,6 +34,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
@@ -254,6 +255,28 @@ public class ProcessMarketStandardReleaseServiceImpl extends ServiceImpl<Process
}
return result;
}
@Override
public boolean checkProcessStatus(String id) {
LambdaQueryWrapper<ProcessMarketStandardRelease> queryWrapperMarketStandardRelease = new LambdaQueryWrapper<>();
queryWrapperMarketStandardRelease.select(ProcessMarketStandardRelease::getProcessInstanceId);
queryWrapperMarketStandardRelease.eq(ProcessMarketStandardRelease::getManifestId,id);
List<ProcessMarketStandardRelease> listProcessMarketStandardRelease = list(queryWrapperMarketStandardRelease);
if(CollectionUtils.isEmpty(listProcessMarketStandardRelease)){
return true;
}
List<String> listProcessInstanceId = listProcessMarketStandardRelease.stream()
.map(ProcessMarketStandardRelease::getProcessInstanceId).collect(Collectors.toList());
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
queryProcessAll.in(ProcessAll::getProcessInstanceId,listProcessInstanceId);
queryProcessAll.eq(ProcessAll::getPrcStatus,"1");
long l = processAllService.count(queryProcessAll);
if(l > 0){
return false;
}
return true;
}
}
@@ -11,6 +11,7 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.process.ms.service.IProcessMarketStandardReleaseService;
import com.jero.modules.laws.marketStandard.constans.MarketStandardConstants;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail;
@@ -53,6 +54,8 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
private ILawsMarketStandardDetailService lawsMarketStandardDetailService;
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private IProcessMarketStandardReleaseService processMarketStandardReleaseService;
public static final String CLASS = "entity";
public static final String PARAMS = "params";
@@ -253,6 +256,12 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
&& !Objects.equals(sysUser.getId(),lawsMarketStandard.getAuthor())){
return Result.error("没有权限");
}
// 验证是否已发起流程
boolean flag = processMarketStandardReleaseService.checkProcessStatus(id);
if(!flag){
return Result.error("当前数据已发布的流程未结束,不可重复发布");
}
// 获取不同版本的数据
LambdaQueryWrapper<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>();
queryLawsMarketStandard.select(LawsMarketStandard::getId);
@@ -361,7 +370,13 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin)
&& !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin)
&& !Objects.equals(lawsMarketStandardOld.getAuthor(),sysUser.getId())){
throw new JeroBootException("没有权限");
return Result.error("没有权限");
}
// 验证是否已发起流程
boolean flag = processMarketStandardReleaseService.checkProcessStatus(id);
if(!flag){
return Result.error("当前数据已发布的流程未结束,不可重复发布");
}
if(Objects.equals(lawsMarketStandardOld.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){
return Result.error("数据已发布");