mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
配件成倍、多工序组、sql语句修正1
This commit is contained in:
+10
-1
@@ -78,7 +78,7 @@ public class PlanController {
|
||||
|
||||
@GetMapping("getPlateByPlanId")
|
||||
@Operation(summary = "根据排单id获取小板分页")
|
||||
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:orderlist')")
|
||||
public CommonResult<PageResult<PlateResList>> getPlateByPlanId(@Valid GetPlateByPlanIdVO vo) {
|
||||
return success(planService.getPlateByPlanId(vo));
|
||||
}
|
||||
@@ -161,4 +161,13 @@ public class PlanController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GetMapping("getPlateList")
|
||||
@Operation(summary = "根据排单ID获取板材列表(未分页)")
|
||||
@Parameter(name = "planId", description = "排单id", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:orderlist')")
|
||||
public CommonResult<List<PlateResList>> getPlateList(@Valid @RequestParam("planId") Long planId) {
|
||||
return success(planService.getPlateList(planId));
|
||||
}
|
||||
|
||||
}
|
||||
+3
@@ -113,5 +113,8 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
|
||||
BigDecimal selectPlateSize( @Param("orderId") Long orderId);
|
||||
|
||||
|
||||
List<Long> selectPlateIdListByBodyId(@Param("bodyId") Long bodyId, @Param("organId") Long organId);
|
||||
|
||||
List<PlateResList> selectPlateListByPlanId(@Param("planId") Long planId, @Param("organId") Long organId);
|
||||
}
|
||||
+2
@@ -69,4 +69,6 @@ public interface PlanService {
|
||||
PageResult<PlanGoodsVO> getNotPlanGoodsListPageByOrderId( NotPlanGoodsListPageVO pageVO);
|
||||
|
||||
Boolean setSort(List<SortVO> list);
|
||||
|
||||
List<PlateResList> getPlateList(Long planId);
|
||||
}
|
||||
+12
-1
@@ -331,7 +331,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
.eqIfPresent("op.is_door", pageReqVO.getIsDoor())
|
||||
.betweenIfPresent("op.height", new BigDecimal[]{pageReqVO.getLongMinRang(), pageReqVO.getLongMaxRang()})
|
||||
.betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()})
|
||||
.groupBy("a.id", " a.order_date", "a.delivery_date", "a.customer", "a.address", "a.custom_order_no")
|
||||
.groupBy("a.id", " a.order_date", "a.delivery_date", "a.customer", "a.address", "a.custom_order_no","a.create_time")
|
||||
.orderByDesc("a.create_time");
|
||||
List<Integer> filterTypes = new ArrayList<>();
|
||||
if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) {
|
||||
@@ -502,4 +502,15 @@ public class PlanServiceImpl implements PlanService {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<PlateResList> getPlateList(Long planId) {
|
||||
|
||||
|
||||
return plateMapper.selectPlateListByPlanId(planId,getUserOrganId());
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+16
@@ -283,6 +283,22 @@
|
||||
select sum(area) from order_plate where order_id = #{orderId};
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectPlateListByPlanId" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList"
|
||||
parameterType="java.lang.Long">
|
||||
|
||||
|
||||
select a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt,a.area,a.seal_left,a.seal_right,a.seal_up,a.seal_down, e.material, e.color, a.width, a.height, a.thickness, b.room_id, b.body_id
|
||||
from order_plan_item p
|
||||
left join order_item b on p.item_id = b.id and b.organ_id = p.organ_id
|
||||
left join order_plate a on b.plate_id = a.id and b.order_id = a.order_id and b.organ_id = a.organ_id
|
||||
left join order_goods e on a.goods_id = e.id and a.order_id = e.order_id and a.organ_id = e.organ_id
|
||||
|
||||
where p.plan_id = #{planId} and p.organ_id = #{organId} ;
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
+5
-7
@@ -183,8 +183,8 @@ public class PackController {
|
||||
@Operation(summary = "板材包裹更新-即封包")
|
||||
@PreAuthorize("@ss.hasPermission('manage:pack:updatePack')")
|
||||
public CommonResult<OrderPackRespVO> updatePack(@Valid @RequestBody OrderPackReqVO packageVO) {
|
||||
OrderPackageDO orderPackageDO = packService.updatePack(packageVO);
|
||||
return success(BeanUtils.toBean(orderPackageDO, OrderPackRespVO.class));
|
||||
|
||||
return success(packService.updatePack(packageVO));
|
||||
|
||||
}
|
||||
|
||||
@@ -196,9 +196,7 @@ public class PackController {
|
||||
@PreAuthorize("@ss.hasPermission('manage:pack:updateParts')")
|
||||
public CommonResult<OrderPackRespVO> updateParts(@Valid @RequestBody OrderPartsReqVO reqVO) {
|
||||
|
||||
OrderPackageDO orderPackageDO = packService.updateParts(reqVO);
|
||||
|
||||
return success(BeanUtils.toBean(orderPackageDO, OrderPackRespVO.class));
|
||||
return success(packService.updateParts(reqVO));
|
||||
|
||||
|
||||
}
|
||||
@@ -277,7 +275,7 @@ public class PackController {
|
||||
@PostMapping("/insertParts")
|
||||
@Operation(summary = "新增配件包裹")
|
||||
@PreAuthorize("@ss.hasPermission('manage:pack:insert')")
|
||||
public CommonResult<OrderPackageDO> addNewPartsPack (@Valid @RequestBody OrderPackReqVO reqVO) {
|
||||
public CommonResult<OrderPackRespVO> addNewPartsPack (@Valid @RequestBody OrderPackReqVO reqVO) {
|
||||
|
||||
return success(packService.addNewPartsPack(reqVO));
|
||||
|
||||
@@ -289,7 +287,7 @@ public class PackController {
|
||||
@PostMapping("/insertOtherPack")
|
||||
@Operation(summary = "新增外部配件-即新增一个包裹")
|
||||
@PreAuthorize("@ss.hasPermission('manage:pack:insert')")
|
||||
public CommonResult<OrderPackageDO> addNewOtherPack(@Valid @RequestBody OtherPackReqVO reqVO) {
|
||||
public CommonResult<OrderPackRespVO> addNewOtherPack(@Valid @RequestBody OtherPackReqVO reqVO) {
|
||||
|
||||
return success(packService.addNewOtherPack(reqVO));
|
||||
|
||||
|
||||
+4
-2
@@ -4,24 +4,26 @@ package com.cf.imes.module.manage.controller.admin.pack.vo;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Schema(description = "管理后台 - 生产单包裹表 Response VO")
|
||||
@Data
|
||||
@Builder
|
||||
public class OrderPackRespVO {
|
||||
|
||||
@Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long orderNo;
|
||||
private Long orderId;
|
||||
|
||||
@Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String packageNo;
|
||||
|
||||
@Schema(description = "包裹类型,-1未定义,0板材,1配件,2其他配件", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long type;
|
||||
private Integer packageType;
|
||||
|
||||
@Schema(description = "包裹名", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String name;
|
||||
|
||||
+2
-2
@@ -25,13 +25,13 @@ public interface ProcessStepItemMapper extends BaseMapperX<OrderProcessStepItemN
|
||||
List<OrderModuleVO> selectPlateName(Long processStepId);
|
||||
|
||||
|
||||
void updateStatus(@Param("id") Long id, @Param("nickname") String nickname, @Param("salary")BigDecimal salary);
|
||||
void updateStatus(@Param("id") Long id);
|
||||
|
||||
|
||||
ProcessStepStatus selectStatusById(@Param("id") Long id,@Param("name") String name, @Param("organId") Long organId);
|
||||
|
||||
|
||||
void updateStemStatus(@Param("processStepId") Long processStepId,@Param("name") String name, @Param("nickname") String nickname);
|
||||
void updateStemStatus(@Param("processStepId") Long processStepId,@Param("name") String name);
|
||||
|
||||
|
||||
|
||||
|
||||
+4
@@ -47,4 +47,8 @@ public interface ProcessStepMapper extends BaseMapperX<OrderProcessStepNDO> {
|
||||
|
||||
|
||||
BigDecimal calculateSalary( @Param("processStepId") Long processStepId,@Param("area") BigDecimal area);
|
||||
|
||||
void updateStatus(@Param("id") Long id, @Param("nickname") String nickname, @Param("salary")BigDecimal salary);
|
||||
|
||||
void updateStatusByName(@Param("id") Long processStepId,@Param("nickname") String nickname);
|
||||
}
|
||||
+4
-4
@@ -38,7 +38,7 @@ public interface PackService {
|
||||
// 查看配件列表分页
|
||||
PageResult<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO);
|
||||
|
||||
OrderPackageDO updateParts(OrderPartsReqVO reqVO);
|
||||
OrderPackRespVO updateParts(OrderPartsReqVO reqVO);
|
||||
|
||||
|
||||
// 拆包
|
||||
@@ -61,7 +61,7 @@ public interface PackService {
|
||||
OrderPackageDO insertPack(OrderPackReqVO packageVO);
|
||||
|
||||
// 更新包裹
|
||||
OrderPackageDO updatePack(OrderPackReqVO packageVO);
|
||||
OrderPackRespVO updatePack(OrderPackReqVO packageVO);
|
||||
|
||||
|
||||
// 查询包裹
|
||||
@@ -78,7 +78,7 @@ public interface PackService {
|
||||
|
||||
|
||||
// 新增外部配件包裹
|
||||
OrderPackageDO addNewOtherPack(OtherPackReqVO reqVO);
|
||||
OrderPackRespVO addNewOtherPack(OtherPackReqVO reqVO);
|
||||
|
||||
|
||||
// 新增外部配件
|
||||
@@ -93,7 +93,7 @@ public interface PackService {
|
||||
|
||||
|
||||
// 新增配件-即新增一个包裹
|
||||
OrderPackageDO addNewPartsPack(OrderPackReqVO reqVO);
|
||||
OrderPackRespVO addNewPartsPack(OrderPackReqVO reqVO);
|
||||
|
||||
|
||||
}
|
||||
|
||||
+29
-12
@@ -185,7 +185,7 @@ public class PackServiceImpl implements PackService {
|
||||
// 更新配件
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public OrderPackageDO updateParts(OrderPartsReqVO reqVO) {
|
||||
public OrderPackRespVO updateParts(OrderPartsReqVO reqVO) {
|
||||
|
||||
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(reqVO.getPackId(), getUserOrganId());
|
||||
|
||||
@@ -209,7 +209,7 @@ public class PackServiceImpl implements PackService {
|
||||
orderPackageDO.setType(OrderPackageTypeEnum.PLATE.getType());
|
||||
orderPackageDO.setStatus(OrderPackageStatusEnum.PACKAGED.getStatus());
|
||||
orderPackageMapper.updateById(orderPackageDO);
|
||||
return orderPackageDO;
|
||||
return typeConversion(orderPackageDO);
|
||||
|
||||
}
|
||||
|
||||
@@ -224,7 +224,7 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
orderPackageMapper.updateById(orderPackageDO);
|
||||
|
||||
return orderPackageDO;
|
||||
return typeConversion(orderPackageDO);
|
||||
}
|
||||
|
||||
|
||||
@@ -315,7 +315,7 @@ public class PackServiceImpl implements PackService {
|
||||
// 更新包裹
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public OrderPackageDO updatePack(OrderPackReqVO packageVO) {
|
||||
public OrderPackRespVO updatePack(OrderPackReqVO packageVO) {
|
||||
|
||||
|
||||
// 判断包裹ID是否为空,为空,走新增,不为空,走更新
|
||||
@@ -331,7 +331,7 @@ public class PackServiceImpl implements PackService {
|
||||
// 生产单明细表新增包裹 ID
|
||||
orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), orderPackageDO.getId());
|
||||
|
||||
return orderPackageDO;
|
||||
return typeConversion(orderPackageDO);
|
||||
}
|
||||
|
||||
|
||||
@@ -357,7 +357,7 @@ public class PackServiceImpl implements PackService {
|
||||
orderPackageDO.setType(OrderPackageTypeEnum.PARTS.getType());
|
||||
orderPackageDO.setStatus(OrderPackageStatusEnum.PACKAGED.getStatus());
|
||||
orderPackageMapper.updateById(orderPackageDO);
|
||||
return orderPackageDO;
|
||||
return typeConversion(orderPackageDO);
|
||||
|
||||
}
|
||||
|
||||
@@ -372,7 +372,7 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
orderPackageMapper.updateById(orderPackageDO);
|
||||
|
||||
return orderPackageDO;
|
||||
return typeConversion(orderPackageDO);
|
||||
|
||||
}
|
||||
|
||||
@@ -385,7 +385,7 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatus(orderId,getUserOrganId());
|
||||
// List<OrderPackageDO> collect = orderPackageDOS.stream().map(o -> o.setRemark(JsonUtils.unzipString(o.getRemark()))).collect(Collectors.toList());
|
||||
return BeanUtils.toBean(orderPackageDOS, OrderPackRespVO.class);
|
||||
return orderPackageDOS.stream().map(m -> typeConversion(m)).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
|
||||
@@ -428,7 +428,7 @@ public class PackServiceImpl implements PackService {
|
||||
// 新增外部配件包裹表
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public OrderPackageDO addNewOtherPack(OtherPackReqVO reqVO) {
|
||||
public OrderPackRespVO addNewOtherPack(OtherPackReqVO reqVO) {
|
||||
|
||||
// 判断配件名称是否重复
|
||||
OrderPartsNDO orderPartsNDO = orderPartsMapper.selectOneParts(reqVO.getName(),getUserOrganId());
|
||||
@@ -465,7 +465,7 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
// 查看新增的包裹信息
|
||||
/* return orderPackageMapper.selectByPackId(orderPackageDO.getId());*/
|
||||
return orderPackageDO;
|
||||
return typeConversion(orderPackageDO);
|
||||
|
||||
|
||||
}
|
||||
@@ -524,7 +524,7 @@ public class PackServiceImpl implements PackService {
|
||||
// 新增配件-即新增一个包裹
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public OrderPackageDO addNewPartsPack(OrderPackReqVO reqVO) {
|
||||
public OrderPackRespVO addNewPartsPack(OrderPackReqVO reqVO) {
|
||||
|
||||
OrderPackageDO orderPackageDO = new OrderPackageDO();
|
||||
orderPackageDO.setOrderId(reqVO.getOrderId());
|
||||
@@ -535,7 +535,24 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
orderItemMapper.insertPartsId(orderPackageDO.getId(), reqVO.getAddPartsIdList());
|
||||
|
||||
return orderPackageDO;
|
||||
return typeConversion(orderPackageDO);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 类型转换
|
||||
private OrderPackRespVO typeConversion(OrderPackageDO orderPackageDO){
|
||||
return OrderPackRespVO.builder()
|
||||
.id(orderPackageDO.getId())
|
||||
.orderId(orderPackageDO.getOrderId())
|
||||
.organId(orderPackageDO.getOrganId())
|
||||
.packageNo(orderPackageDO.getPackageNo())
|
||||
.packageType(orderPackageDO.getType())
|
||||
.name(orderPackageDO.getName())
|
||||
.status(orderPackageDO.getStatus())
|
||||
.remark(orderPackageDO.getRemark())
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
|
||||
+8
-2
@@ -135,7 +135,9 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
|
||||
// 判断生产单工序的状态是否为组件加工
|
||||
if(processStepStatuses.getType().equals(ProcessProcessingTypeEnum.COMPONENTPROCESSING.getNumber())){
|
||||
|
||||
processStepItemMapper.updateStemStatus(reqVo.getProcessStepId(),reqVo.getName(),nickname);
|
||||
processStepMapper.updateStatusByName(reqVo.getProcessStepId(),nickname);
|
||||
|
||||
processStepItemMapper.updateStemStatus(reqVo.getProcessStepId(),reqVo.getName());
|
||||
|
||||
List<OrderProcessStepItemNDO> orderProcessStepItemNDOS = processStepItemMapper.selectStemById(reqVo.getProcessStepId(),ProcessingStatusEnum.RAW.getStatus(),getUserOrganId());
|
||||
if(orderProcessStepItemNDOS.isEmpty()){
|
||||
@@ -154,8 +156,12 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
|
||||
try {
|
||||
|
||||
BigDecimal salary = calculateSalary(reqVo.getProcessStepId());
|
||||
|
||||
// 修改生产明细表和步骤表的工序状态
|
||||
processStepItemMapper.updateStatus(reqVo.getProcessStepId(),nickname,salary);
|
||||
processStepMapper.updateStatus(reqVo.getProcessStepId(),nickname,salary);
|
||||
|
||||
processStepItemMapper.updateStatus(reqVo.getProcessStepId());
|
||||
|
||||
}catch (Exception e){
|
||||
log.error(String.valueOf(e));
|
||||
|
||||
|
||||
+7
-12
@@ -20,16 +20,11 @@
|
||||
|
||||
|
||||
<update id="updateStatus"
|
||||
parameterType="java.lang.Object">
|
||||
parameterType="java.lang.Long">
|
||||
|
||||
update order_process_step_item opsi
|
||||
JOIN order_process_step ops ON opsi.process_step_id = ops.id
|
||||
SET opsi.status = TRUE,
|
||||
ops.status = TRUE,
|
||||
ops.finish_time = now(),
|
||||
ops.manager = #{nickname},
|
||||
ops.salary_amount = #{salary}
|
||||
WHERE ops.id = #{id};
|
||||
update order_process_step_item
|
||||
SET status = TRUE
|
||||
WHERE process_step_id = #{id};
|
||||
|
||||
|
||||
</update>
|
||||
@@ -37,9 +32,9 @@
|
||||
<update id="updateStemStatus" parameterType="java.lang.Object">
|
||||
|
||||
update order_process_step_item opsi
|
||||
join order_process_step ops on opsi.process_step_id = ops.id
|
||||
set opsi.status = true,
|
||||
ops.manager = #{nickname}
|
||||
|
||||
set opsi.status = true
|
||||
|
||||
where opsi.process_step_id = #{processStepId} and opsi.name = #{name}
|
||||
|
||||
|
||||
|
||||
+22
@@ -11,6 +11,28 @@
|
||||
</update>
|
||||
|
||||
|
||||
<update id="updateStatus"
|
||||
parameterType="java.lang.Object">
|
||||
|
||||
|
||||
update order_process_step
|
||||
set status = true,
|
||||
finish_time = now(),
|
||||
manager = #{nickname},
|
||||
salary_amount = #{salary}
|
||||
where id = #{id};
|
||||
|
||||
</update>
|
||||
|
||||
|
||||
<update id="updateStatusByName" parameterType="java.lang.Object">
|
||||
|
||||
update order_process_step
|
||||
set manager = #{nickname}
|
||||
where id = #{id};
|
||||
|
||||
|
||||
</update>
|
||||
|
||||
|
||||
<resultMap id="OrderMap" type="com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO">
|
||||
|
||||
+22
-13
@@ -3,6 +3,7 @@ package com.cf.imes.module.system.service.permission;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.cf.imes.framework.common.enums.CommonStatusEnum;
|
||||
import com.cf.imes.framework.common.exception.ServiceException;
|
||||
@@ -189,18 +190,22 @@ public class PermissionServiceImpl implements PermissionService {
|
||||
roleMenuMapper.deleteListByRoleIdAndMenuIds(roleId, deleteMenuIds);
|
||||
}
|
||||
|
||||
Long currentOrganId = SecurityFrameworkUtils.getUserOrganId();
|
||||
// 角色菜单权限发生修改,通知刷新本地缓存
|
||||
if (CollectionUtil.isNotEmpty(createMenuIds) || CollectionUtil.isNotEmpty(deleteMenuIds)) {
|
||||
CompletableFuture.runAsync(() -> {
|
||||
// 当前操作人和所操作的目标菜单机构不同时,清空MENU_ROLE_ID_LIST:目标机构id:菜单id的缓存
|
||||
if (ObjectUtil.notEqual(organId, currentOrganId)) {
|
||||
// 获取新增和删除菜单id的并集
|
||||
Collection<Long> delKeys = CollUtil.union(createMenuIds, deleteMenuIds);
|
||||
delKeys.forEach(menuId -> {
|
||||
// 移除redis中的缓存
|
||||
redisTemplate.delete(String.format(String.valueOf(new StringBuffer(RedisKeyConstants.USER_ROLE_ID_LIST).append(":%s:%s")), organId, menuId));
|
||||
});
|
||||
Collection<Long> delMenuIds = CollUtil.union(createMenuIds, deleteMenuIds);
|
||||
// 构建批量删除的key集合
|
||||
Set<String> delKeys = delMenuIds.stream().map(menuId -> String.format(String.valueOf(new StringBuffer(RedisKeyConstants.MENU_ROLE_ID_LIST).append(":%s:%s")), organId, menuId)).collect(Collectors.toSet());
|
||||
Long batchDelNum = redisTemplate.delete(delKeys);
|
||||
log.info("[assignRoleMenu] 批量删除redis[MENU_ROLE_ID_LIST]数量:{}", batchDelNum);
|
||||
}
|
||||
redisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
|
||||
}).exceptionally(e -> {
|
||||
log.error("redis message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e.getMessage());
|
||||
log.error("[assignRoleMenu] redis message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
@@ -326,18 +331,22 @@ public class PermissionServiceImpl implements PermissionService {
|
||||
userRoleMapper.deleteListByRoleIdAndUserIds(roleId, deleteRoleUserIds);
|
||||
}
|
||||
|
||||
Long currentOrganId = SecurityFrameworkUtils.getUserOrganId();
|
||||
// 角色菜单权限发生修改,通知刷新本地缓存
|
||||
if (CollectionUtil.isNotEmpty(createRoleUserIds) || CollectionUtil.isNotEmpty(deleteRoleUserIds)) {
|
||||
CompletableFuture.runAsync(() -> {
|
||||
// 当前操作人和所操作的目标菜单机构不同时,清空USER_ROLE_ID_LIST:目标机构id:用户id的缓存
|
||||
if (ObjectUtil.notEqual(finalOrganId, currentOrganId)) {
|
||||
// 获取新增和删除用户id的并集
|
||||
Collection<Long> delKeys = CollUtil.union(createRoleUserIds, deleteRoleUserIds);
|
||||
delKeys.forEach(userId -> {
|
||||
// 移除redis中的缓存
|
||||
redisTemplate.delete(String.format(String.valueOf(new StringBuffer(RedisKeyConstants.USER_ROLE_ID_LIST).append(":%s:%s")), finalOrganId, userId));
|
||||
});
|
||||
Collection<Long> delRoleUserIds = CollUtil.union(createRoleUserIds, deleteRoleUserIds);
|
||||
// 构建批量删除的key集合
|
||||
Set<String> delKeys = delRoleUserIds.stream().map(userId -> String.format(String.valueOf(new StringBuffer(RedisKeyConstants.USER_ROLE_ID_LIST).append(":%s:%s")), finalOrganId, userId)).collect(Collectors.toSet());
|
||||
Long batchDelNum = redisTemplate.delete(delKeys);
|
||||
log.info("[batchAssignRoleUsers] 批量删除redis[USER_ROLE_ID_LIST]数量:{}", batchDelNum);
|
||||
}
|
||||
redisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
|
||||
}).exceptionally(e -> {
|
||||
log.error("redis message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e.getMessage());
|
||||
log.error("[batchAssignRoleUsers] redis message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
@@ -419,7 +428,7 @@ public class PermissionServiceImpl implements PermissionService {
|
||||
redisTemplate.delete(String.format(String.valueOf(new StringBuffer(RedisKeyConstants.USER_ROLE_ID_LIST).append(":%s:%s")), organId, userId));
|
||||
redisTemplate.convertAndSend(RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, "");
|
||||
}).exceptionally(e -> {
|
||||
log.error("redis 清空user_role_ids或message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e.getMessage());
|
||||
log.error("[assignUserRole] redis 清空USER_ROLE_ID_LIST或message发送失败, topic:{}, 异常:{}", RedisRefreshChannelTopicConstants.PERMISSION_REFRESH, e);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user