mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
禅道#1054问题修复
This commit is contained in:
+36
-19
@@ -32,6 +32,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -69,23 +70,18 @@ public class CustomPlateNoServiceHandler extends AbstractSystemConfigServiceHand
|
||||
public List<SystemConfigDO> selectList(ConfigPageReqVO pageReqVO) {
|
||||
SystemConfigTypeEnum customPlateNoEnum = SystemConfigTypeEnum.CUSTOM_PLATE_NO;
|
||||
List<SystemConfigDO> systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX<SystemConfigDO>()
|
||||
.eq(SystemConfigDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
|
||||
.eq(SystemConfigDO::getType, pageReqVO.getType())
|
||||
.eqIfPresent(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
|
||||
.orderByAsc(SystemConfigDO::getId));
|
||||
.eq(SystemConfigDO::getType, customPlateNoEnum.getType())
|
||||
.eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
|
||||
.orderByAsc(SystemConfigDO::getVersion));
|
||||
if (systemConfigDOS.isEmpty()) {
|
||||
SystemConfigDO initCustomPlateNoConfig = new SystemConfigDO().builder().id(null).name(customPlateNoEnum.getName()).type(customPlateNoEnum.getType()).build();
|
||||
return List.of(initCustomPlateNoConfig);
|
||||
} else {
|
||||
// configDOPageResult下的自定义板编号配置只保留version最大的一项
|
||||
Optional<SystemConfigDO> maxVersionCustPlateNoConfigOptinal = systemConfigDOS.stream()
|
||||
.filter(s -> ObjectUtil.equal(customPlateNoEnum.getType(), s.getType()))
|
||||
.max(Comparator.comparing(SystemConfigDO::getVersion));
|
||||
if (maxVersionCustPlateNoConfigOptinal.isPresent()) {
|
||||
systemConfigDOS.removeIf(s -> ObjectUtil.equal(customPlateNoEnum.getType(), s.getType()) && ObjectUtil.notEqual(s.getId(), maxVersionCustPlateNoConfigOptinal.get().getId()));
|
||||
}
|
||||
return systemConfigDOS;
|
||||
}
|
||||
// configDOPageResult下的自定义板编号配置只保留version最大的一项
|
||||
return systemConfigDOS.stream()
|
||||
.max(Comparator.comparing(SystemConfigDO::getVersion))
|
||||
.map(Collections::singletonList)
|
||||
.orElse(Collections.emptyList());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -304,8 +300,11 @@ public class CustomPlateNoServiceHandler extends AbstractSystemConfigServiceHand
|
||||
|
||||
@Override
|
||||
public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
|
||||
|
||||
Long id = reqVO.getId();
|
||||
// 状态
|
||||
Integer status = reqVO.getStatus();
|
||||
// 组织
|
||||
Long organId = OrganContextHolder.getOrganId();
|
||||
|
||||
// 校验存在
|
||||
SystemConfigDO systemConfigDO = systemConfigMapper.selectOne(new LambdaQueryWrapperX<SystemConfigDO>()
|
||||
@@ -315,13 +314,31 @@ public class CustomPlateNoServiceHandler extends AbstractSystemConfigServiceHand
|
||||
throw exception(SYSTEM_CONFIG_NOT_EXISTS);
|
||||
}
|
||||
|
||||
// 更新状态
|
||||
systemConfigMapper.update(new LambdaUpdateWrapper<SystemConfigDO>().eq(SystemConfigDO::getId, id).set(SystemConfigDO::getStatus, reqVO.getStatus()));
|
||||
if (CommonStatusEnum.ENABLE.getStatus().equals(status)) {
|
||||
// 查询最大版本号
|
||||
List<SystemConfigDO> systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX<SystemConfigDO>()
|
||||
.eq(SystemConfigDO::getType, SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType())
|
||||
.eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
|
||||
.orderByAsc(SystemConfigDO::getVersion));
|
||||
Optional<SystemConfigDO> maxVersionCustPlateNoConfigOptinal = systemConfigDOS.stream()
|
||||
.max(Comparator.comparing(SystemConfigDO::getVersion));
|
||||
if (maxVersionCustPlateNoConfigOptinal.isPresent()) {
|
||||
// 启用配置,启用最大版本号
|
||||
systemConfigMapper.update(new LambdaUpdateWrapper<SystemConfigDO>()
|
||||
.eq(SystemConfigDO::getOrganId, organId)
|
||||
.eq(SystemConfigDO::getId, maxVersionCustPlateNoConfigOptinal.get().getId())
|
||||
.eq(SystemConfigDO::getType, SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType())
|
||||
.set(SystemConfigDO::getStatus, status));
|
||||
}
|
||||
} else {
|
||||
// 禁用配置,禁用组织下所有板编号配置
|
||||
systemConfigMapper.update(new LambdaUpdateWrapper<SystemConfigDO>()
|
||||
.eq(SystemConfigDO::getOrganId, organId)
|
||||
.eq(SystemConfigDO::getType, SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType())
|
||||
.set(SystemConfigDO::getStatus, status));
|
||||
|
||||
|
||||
if (CommonStatusEnum.DISABLE.getStatus().equals(reqVO.getStatus())) {
|
||||
// 禁用配置移除缓存
|
||||
String redisKey = String.format("%s:%d:%s", RedisKeyConstants.SYSTEM_CONFIG, OrganContextHolder.getOrganId(), RedisKeyConstants.CUSTOM_PLATE_NO);
|
||||
String redisKey = String.format("%s:%d:%s", RedisKeyConstants.SYSTEM_CONFIG, organId, RedisKeyConstants.CUSTOM_PLATE_NO);
|
||||
Boolean delete = stringRedisTemplate.delete(redisKey);
|
||||
log.info("[CustomPlateNoGenerateService][afterUpdateStatus]key:{}缓存删除结果:{}", redisKey, delete);
|
||||
}
|
||||
|
||||
+9
-4
@@ -38,7 +38,7 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
|
||||
|
||||
// 自定义板编号、高级筛选不走通用分页查询
|
||||
List<SystemConfigTypeEnum> list = allConfigTypes.stream()
|
||||
.filter(f -> ObjectUtil.notEqual(SystemConfigTypeEnum.ADVANCED_SCREEN.getType(), f.getType()) && ObjectUtil.notEqual(SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType(), f.getType())).toList();
|
||||
.filter(f -> ObjectUtil.notEqual(SystemConfigTypeEnum.ADVANCED_SCREEN.getType(), f.getType())).toList();
|
||||
|
||||
List<SystemConfigDO> systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX<SystemConfigDO>()
|
||||
.likeIfPresent(SystemConfigDO::getName, reqVO.getName())
|
||||
@@ -65,6 +65,14 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
|
||||
.type(configTypeEnum.getType())
|
||||
.build();
|
||||
|
||||
// 自定义板编号
|
||||
if(configTypeEnum.getType().equals(SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType())){
|
||||
initConfig.setStatus(CommonStatusEnum.DISABLE.getStatus());
|
||||
resultList.add(initConfig);
|
||||
continue;
|
||||
}
|
||||
|
||||
// 支持多种颜色排单
|
||||
if(configTypeEnum.getType().equals(SystemConfigTypeEnum.MULTI_COLOR_ORDER_PLAN.getType())){
|
||||
SystemConfigDO systemConfigDO = SystemConfigDO
|
||||
.builder()
|
||||
@@ -90,9 +98,6 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
|
||||
}
|
||||
}
|
||||
|
||||
// 增加自定义板编号配置
|
||||
List<SystemConfigDO> customPlateNoConfigList = customPlateNoServiceHandler.selectList(ConfigPageReqVO.builder().type(SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType()).build());
|
||||
resultList.addAll(0, customPlateNoConfigList);
|
||||
return resultList;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user