市场法规清单添加直接发布按钮

This commit is contained in:
梁琦涛
2024-09-27 14:12:52 +08:00
parent 3c7aab8b99
commit 54e9a65326
3 changed files with 47 additions and 14 deletions
@@ -203,10 +203,10 @@ public class MarketStandardController {
@PostMapping(value = "/publish")
@RequiresPermissions("marketStandard:publish")
public Result<?> publish(@RequestBody Map<String, String> map) {
if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) {
if (!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))) {
return Result.error(ResultCommon.SELECT_DATA);
}
return marketStandardService.checkPublish(map.get("id"));
return marketStandardService.checkPublish(map.get("ids"));
}
/**
@@ -32,6 +32,7 @@ import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.servlet.ModelAndView;
@@ -489,23 +490,53 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
}
@Override
public synchronized Result<?> checkPublish(String id) {
LawsMarketStandard lawsMarketStandardOld = getById(id);
if(Objects.isNull(lawsMarketStandardOld)){
public synchronized Result<?> checkPublish(String ids) {
List<String> listIds = Arrays.asList(ids.split(","));
List<LawsMarketStandard> lawsMarketStandardOldList = listByIds(listIds);
if(listIds.size() != lawsMarketStandardOldList.size()){
return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
// 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除
StringBuilder msg = new StringBuilder();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin)
&& Arrays.stream(sysUser.getRoleIds().split(",")).noneMatch(otherAdmin::contains)
&& !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin)
&& !Objects.equals(lawsMarketStandardOld.getAuthor(),sysUser.getId())){
return Result.error(ResultCommon.NO_PERMISSION);
for (String listId : listIds) {
Optional<LawsMarketStandard> op = lawsMarketStandardOldList.stream().filter(o->Objects.equals(o.getId(),listId)).findFirst();
if(!op.isPresent()){
continue;
}
LawsMarketStandard lawsMarketStandard = op.get();
// 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除
if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin)
&& Arrays.stream(sysUser.getRoleIds().split(",")).noneMatch(otherAdmin::contains)
&& !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin)
&& !Objects.equals(lawsMarketStandard.getAuthor(),sysUser.getId())){
msg.append(lawsMarketStandard.getManifestNo())
.append(Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH)
? "No data operation permission," : "没有权限,");
continue;
}
if(Objects.equals(lawsMarketStandard.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){
msg.append(lawsMarketStandard.getManifestNo())
.append(Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH)
? "Data published," : "数据已发布,");
continue;
}
try {
processMarketStandardReleaseService.checkProcessStatus(listId);
}catch (Exception e){
msg.append(lawsMarketStandard.getManifestNo())
.append("当前数据已发布的流程未结束,不可操作,");
}
}
if(Objects.equals(lawsMarketStandardOld.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){
return Result.error(ResultCommon.DATA_PUBLISHED);
if(!StringUtils.isEmpty(msg.toString())){
return Result.error(msg.toString().substring(0,msg.toString().length() - 1));
}
processMarketStandardReleaseService.checkProcessStatus(id);
LambdaUpdateWrapper<LawsMarketStandard> updateLawsMarketStandard = new LambdaUpdateWrapper<>();
updateLawsMarketStandard.in(LawsMarketStandard::getId,listIds);
updateLawsMarketStandard.set(LawsMarketStandard::getUpdateBy,sysUser.getUsername());
updateLawsMarketStandard.set(LawsMarketStandard::getUpdateBy,new Date());
updateLawsMarketStandard.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_PUBLISH);
update(updateLawsMarketStandard);
return Result.OK(ResultCommon.OK);
}