diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index c47b9b98..fe53547d 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -549,3 +549,5 @@ CREATE INDEX lutl_idx_create_time ON laws_unified_todo_log(`create_time`); INSERT INTO `sys_dict_item` (`id`, `dict_id`, `parent_id`, `item_text`, `en_name`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `stat_node`, `en_base`) VALUES ('1694639979913162755', '1493098515761917954', '0', '多选用户弹框', 'Multiple selection a user', '19', '', 1, 1, 'admin', '2023-08-24 17:17:11', 'admin', '2023-08-24 17:41:25', NULL, 0, NULL, '0', NULL, NULL); update laws_tag set field_show_type = '19' where db_field_txt = '责任人' +-- 2024-09-27 市场法规清单添加直接发布按钮 +INSERT INTO `laws_chery_dev`.`sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `menu_en`, `app_id`, `home_icon`) VALUES ('897f89d79231fcb9019231fcb9ca0000', '897f89d79014d7fe019014d7fe2e0000', '直接发布', NULL, NULL, NULL, NULL, 2, 'marketStandard:directRelease', '1', 8.00, 0, NULL, 1, 1, 0, 0, NULL, 'ldq', '2024-09-27 13:38:19', NULL, NULL, 0, 0, '1', 0, 'Direct release', NULL, NULL); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java index e10f71d9..aa762203 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java @@ -203,10 +203,10 @@ public class MarketStandardController { @PostMapping(value = "/publish") @RequiresPermissions("marketStandard:publish") public Result publish(@RequestBody Map 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")); } /** diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java index dba9b054..1a7f393c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java @@ -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 checkPublish(String id) { - LawsMarketStandard lawsMarketStandardOld = getById(id); - if(Objects.isNull(lawsMarketStandardOld)){ + public synchronized Result checkPublish(String ids) { + List listIds = Arrays.asList(ids.split(",")); + List 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 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 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); }