修改OTA问题
This commit is contained in:
+14
@@ -62,6 +62,9 @@ public class OtaManageApplyEO implements Serializable {
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private java.lang.String sysOrgCode;
|
||||
|
||||
@ApiModelProperty(value = "VDR_ID")
|
||||
private java.lang.String vdrId;
|
||||
|
||||
@ApiModelProperty(value = "VDR")
|
||||
private java.lang.String vdr;
|
||||
|
||||
@@ -199,6 +202,10 @@ public class OtaManageApplyEO implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private boolean disabled;
|
||||
|
||||
@ApiModelProperty(value = "是否丢弃置灰")
|
||||
@TableField(exist = false)
|
||||
private boolean discard;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "表头排序字段")
|
||||
private java.lang.String orderByField;
|
||||
@@ -233,5 +240,12 @@ public class OtaManageApplyEO implements Serializable {
|
||||
@ApiModelProperty(value = "扩展任务数量")
|
||||
private Integer extensionItemCount;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "是否被删除(0:否;1:是)")
|
||||
private String isDel;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String attestationScheduleText;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+11
-3
@@ -32,9 +32,14 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
public class OtaManageReceive implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**主键*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
|
||||
/**主键*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键")
|
||||
private String vdrId;
|
||||
|
||||
/**VDR*/
|
||||
@ApiModelProperty(value = "VDR")
|
||||
private String id;
|
||||
|
||||
/**创建人*/
|
||||
@@ -126,6 +131,9 @@ public class OtaManageReceive implements Serializable {
|
||||
@ApiModelProperty(value = "发布类型")
|
||||
private String releaseType;
|
||||
|
||||
|
||||
/**是否被删除(0:否;1:是)*/
|
||||
@Excel(name = "是否被删除(0:否;1:是)", width = 15)
|
||||
@ApiModelProperty(value = "是否被删除(0:否;1:是)")
|
||||
private String isDel;
|
||||
|
||||
}
|
||||
|
||||
+76
-47
@@ -45,26 +45,48 @@ public class OtaDataUpdate implements Job {
|
||||
|
||||
|
||||
List<OtaManageReceive> omrSyncList = otaManageReceiveService.getReceiveSync();
|
||||
|
||||
for (OtaManageReceive omrSync : omrSyncList) {
|
||||
String plannedBpLaunchBatch = omrSync.getPlannedBpLaunchBatch();
|
||||
if (StringUtils.isNotEmpty(plannedBpLaunchBatch)) {
|
||||
Matcher matcher = pattern.matcher(plannedBpLaunchBatch);
|
||||
if (matcher.find()) {
|
||||
omrSync.setPlannedBpLaunchBatch(matcher.group());
|
||||
}
|
||||
}
|
||||
}
|
||||
List<OtaManageReceive> omrList = otaManageReceiveService.queryList();
|
||||
|
||||
List<OtaManageReceive> addList = new ArrayList<>();
|
||||
List<String> delList = new ArrayList<>();
|
||||
List<OtaManageReceive> updateList = new ArrayList<>();
|
||||
|
||||
for (OtaManageReceive omr : omrList) {
|
||||
boolean delFlag = true;
|
||||
for (OtaManageReceive omrSync : omrSyncList) {
|
||||
if(StringUtils.isBlank(omrSync.getPlannedBpLaunchBatch())){
|
||||
continue;
|
||||
}
|
||||
if (omr.getId().equals(omrSync.getId())) {
|
||||
delFlag = false;
|
||||
if (!compareReceive(omr, omrSync)) {
|
||||
if (1 == compareReceive(omr, omrSync)) {
|
||||
updateList.add(omrSync);
|
||||
} else if (2 == compareReceive(omr, omrSync)) {
|
||||
boolean have = false;
|
||||
for (OtaManageReceive omr1 : omrList) {
|
||||
if(omrSync.getPlannedBpLaunchBatch().equals(omr1.getPlannedBpLaunchBatch())){
|
||||
have = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!have){
|
||||
//逻辑删除 但保留在原软件版本列表中
|
||||
omr.setIsDel("1");
|
||||
updateList.add(omr);
|
||||
//同步数据中新增
|
||||
omrSync.setVdrId(UUID.randomUUID().toString().replace("-",""));
|
||||
addList.add(omrSync);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (delFlag) {
|
||||
//同步数据中被删除
|
||||
delList.add(omr.getId());
|
||||
}
|
||||
}
|
||||
|
||||
for (OtaManageReceive omrSync : omrSyncList) {
|
||||
@@ -76,27 +98,28 @@ public class OtaDataUpdate implements Job {
|
||||
}
|
||||
if (addFlag) {
|
||||
//同步数据中新增
|
||||
String plannedBpLaunchBatch = omrSync.getPlannedBpLaunchBatch();
|
||||
if (StringUtils.isNotEmpty(plannedBpLaunchBatch)) {
|
||||
Matcher matcher = pattern.matcher(plannedBpLaunchBatch);
|
||||
if (matcher.find()) {
|
||||
omrSync.setPlannedBpLaunchBatch(matcher.group());
|
||||
}
|
||||
}
|
||||
omrSync.setVdrId(UUID.randomUUID().toString().replace("-",""));
|
||||
addList.add(omrSync);
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(addList)) {
|
||||
otaManageReceiveService.saveBatch(addList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(addList)) {
|
||||
otaManageReceiveService.deleteByIds(delList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(updateList)) {
|
||||
otaManageReceiveService.updateBatchById(updateList);
|
||||
}
|
||||
|
||||
List<OtaManageReceiveNsdp> omrnSyncList = otaManageReceiveNsdpService.getOtaManageReceiveNsdpSync();
|
||||
|
||||
for (OtaManageReceiveNsdp omrnSync : omrnSyncList) {
|
||||
String plannedBpLaunchBatch = omrnSync.getReleaseName();
|
||||
if (StringUtils.isNotEmpty(plannedBpLaunchBatch)) {
|
||||
Matcher matcher = pattern.matcher(plannedBpLaunchBatch);
|
||||
if (matcher.find()) {
|
||||
omrnSync.setReleaseName(matcher.group());
|
||||
}
|
||||
}
|
||||
}
|
||||
List<OtaManageReceiveNsdp> omrnList = otaManageReceiveNsdpService.queryList();
|
||||
|
||||
List<OtaManageReceiveNsdp> addNsdpList = new ArrayList<>();
|
||||
@@ -128,13 +151,7 @@ public class OtaDataUpdate implements Job {
|
||||
}
|
||||
if (addFlag) {
|
||||
//同步数据中新增
|
||||
String releaseName = omrnSync.getReleaseName();
|
||||
if (StringUtils.isNotEmpty(releaseName)) {
|
||||
Matcher matcher = pattern.matcher(releaseName);
|
||||
if (matcher.find()) {
|
||||
omrnSync.setReleaseName(matcher.group());
|
||||
}
|
||||
}
|
||||
|
||||
addNsdpList.add(omrnSync);
|
||||
}
|
||||
|
||||
@@ -154,26 +171,24 @@ public class OtaDataUpdate implements Job {
|
||||
Map<String, Date> releaceDateMap = new HashMap<>();
|
||||
//记录车型列表
|
||||
Map<String ,Set<String>> omrnVehicleMap = new HashMap<>();
|
||||
|
||||
|
||||
Map<String ,String> releaceTypeMap = new HashMap<>();
|
||||
|
||||
Date today = new Date();
|
||||
List<OtaManageReceiveNsdp> omrnLastList = otaManageReceiveNsdpService.queryList();
|
||||
for (OtaManageReceiveNsdp omrn : omrnLastList) {
|
||||
//找到最快来临的发布时间
|
||||
Date releaceDate = releaceDateMap.get(omrn.getReleaseName());
|
||||
try {
|
||||
Date syncDate = sdf.parse(omrn.getReleaseDate());
|
||||
if (null == releaceDate) {
|
||||
releaceDateMap.put(omrn.getReleaseName(), syncDate);
|
||||
} else {
|
||||
if (syncDate.after(today) && syncDate.before(releaceDate)) {
|
||||
if (StringUtils.isNotBlank(omrn.getDateName()) && omrn.getDateName().equals("PLM")) {
|
||||
try {
|
||||
Date syncDate = sdf.parse(omrn.getReleaseDate());
|
||||
if (null == releaceDate) {
|
||||
releaceDateMap.put(omrn.getReleaseName(), syncDate);
|
||||
} else {
|
||||
if (syncDate.before(releaceDate)) {
|
||||
releaceDateMap.put(omrn.getReleaseName(), syncDate);
|
||||
}
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
//处理车型字符串
|
||||
Set<String> vehicleSet = omrnVehicleMap.get(omrn.getReleaseName());
|
||||
@@ -288,35 +303,49 @@ public class OtaDataUpdate implements Job {
|
||||
if (!StringUtils.equals(omrn.getVehicle(), omrnSync.getVehicle())) {
|
||||
return false;
|
||||
}
|
||||
if (!StringUtils.equals(omrn.getReleaseName(), omrnSync.getReleaseName())) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean compareReceive(OtaManageReceive omr, OtaManageReceive omrSync) {
|
||||
/**
|
||||
* 对比VDR数据
|
||||
* 返回状态
|
||||
* 0:无变化
|
||||
* 1:有变化
|
||||
* 2:改变版本号
|
||||
*/
|
||||
private int compareReceive(OtaManageReceive omr, OtaManageReceive omrSync) {
|
||||
int res = 0;
|
||||
if (!StringUtils.equals(omr.getSummary(), omrSync.getSummary())) {
|
||||
return false;
|
||||
res = 1;
|
||||
}
|
||||
if (!StringUtils.equals(omr.getStatus(), omrSync.getStatus())) {
|
||||
return false;
|
||||
res = 1;
|
||||
}
|
||||
if (!StringUtils.equals(omr.getHomologationImpact(), omrSync.getHomologationImpact())) {
|
||||
return false;
|
||||
res = 1;
|
||||
}
|
||||
if (!StringUtils.equals(omr.getHomologation(), omrSync.getHomologation())) {
|
||||
return false;
|
||||
res = 1;
|
||||
}
|
||||
if (!StringUtils.equals(omr.getImpactCnHomo(), omrSync.getImpactCnHomo())) {
|
||||
return false;
|
||||
res = 1;
|
||||
}
|
||||
if (!StringUtils.equals(omr.getImpactEuHomo(), omrSync.getImpactEuHomo())) {
|
||||
return false;
|
||||
res = 1;
|
||||
}
|
||||
if (!StringUtils.equals(omr.getMasterDomain(), omrSync.getMasterDomain())) {
|
||||
return false;
|
||||
res = 1;
|
||||
}
|
||||
if (!StringUtils.equals(omr.getAppliedVehicleProject(), omrSync.getAppliedVehicleProject())) {
|
||||
return false;
|
||||
res = 1;
|
||||
}
|
||||
return true;
|
||||
if (!StringUtils.equals(omr.getPlannedBpLaunchBatch(), omrSync.getPlannedBpLaunchBatch())) {
|
||||
res = 2;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+4
-4
@@ -68,14 +68,14 @@
|
||||
</select>
|
||||
|
||||
<select id="getOtaCarPage" resultType="com.jero.modules.ota.entity.OtaManageApplyEO">
|
||||
select omr.id as vdr,omr.planned_bp_launch_batch,omr.update_date,
|
||||
select omr.vdr_id,omr.id as vdr,omr.planned_bp_launch_batch,omr.update_date,
|
||||
omr.summary,omr.status,
|
||||
omr.homologation_impact,omr.homologation,
|
||||
omr.impact_cn_homo,omr.impact_eu_homo,
|
||||
omr.master_domain,omr.applied_vehicle_project,omr.vehicle_match,
|
||||
omr.master_domain,omr.applied_vehicle_project,omr.vehicle_match,omr.is_del,
|
||||
oma.id,oma.project_version,oma.attestation_schedule,oma.match_status,oma.remark,oma.vehicle_type
|
||||
from ota_manage_receive omr
|
||||
left join ota_manage_apply oma on oma.vdr = omr.id
|
||||
left join ota_manage_apply oma on oma.vdr_id = omr.vdr_id
|
||||
<where>
|
||||
1=1
|
||||
<if test="otaManageApplyEO.plannedBpLaunchBatch != null and otaManageApplyEO.plannedBpLaunchBatch != ''">
|
||||
@@ -158,7 +158,7 @@
|
||||
LEFT JOIN ota_manage_apply oma ON oma.project_version = plb.id
|
||||
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
|
||||
LEFT JOIN project_year_name_info pyni ON pyni.project_name_id = pni.id
|
||||
WHERE oma.vdr = #{vdr}
|
||||
WHERE oma.vdr_id = #{vdr}
|
||||
GROUP BY plb.id
|
||||
</select>
|
||||
|
||||
|
||||
+57
-14
@@ -203,7 +203,6 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
|
||||
public List<OtaManageApplyEO> getNsdpList(OtaManageApplyEO otaManageApplyEO) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date today = new Date();
|
||||
List<OtaManageApplyEO> resList = new ArrayList<>();
|
||||
List<OtaManageReceiveNsdp> dataList = otaManageReceiveNsdpService.queryList();
|
||||
Map<String, List<OtaManageReceiveNsdp>> dataMap = dataList.stream().collect(Collectors.groupingBy(OtaManageReceiveNsdp::getReleaseName));
|
||||
@@ -228,13 +227,15 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
}
|
||||
//找到最快来临的发布时间
|
||||
try {
|
||||
if(StringUtils.isNotBlank(omrn.getReleaseDate())){
|
||||
Date syncDate = sdf.parse(omrn.getReleaseDate());
|
||||
if (null == releaseDate) {
|
||||
releaseDate = syncDate;
|
||||
} else {
|
||||
if (syncDate.after(today) && syncDate.before(releaseDate)) {
|
||||
if(StringUtils.isNotBlank(omrn.getDateName())&&omrn.getDateName().equals("PLM")){
|
||||
if(StringUtils.isNotBlank(omrn.getReleaseDate())){
|
||||
Date syncDate = sdf.parse(omrn.getReleaseDate());
|
||||
if (null == releaseDate) {
|
||||
releaseDate = syncDate;
|
||||
} else {
|
||||
if (syncDate.before(releaseDate)) {
|
||||
releaseDate = syncDate;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -299,11 +300,13 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
public List<OtaManageApplyEO> getOtaPage(OtaManageApplyEO otaManageApplyEO) {
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
boolean otaManager = isOtaManager();
|
||||
boolean regulationOwner = isRegulationOwner();
|
||||
|
||||
List<OtaManageApplyEO> otaManageApplyEOList = this.getNsdpList(otaManageApplyEO);
|
||||
List<OtaManageApplyEO> dataList = new ArrayList<>();
|
||||
|
||||
//去跟manager和studio权限
|
||||
if (otaManager) {
|
||||
if (otaManager || regulationOwner) {
|
||||
dataList = otaManageApplyEOList;
|
||||
} else {
|
||||
List<OtaManagePermission> managePermissionList = otaManagePermissionService.queryByUserId(currentUser.getId());
|
||||
@@ -333,7 +336,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
}
|
||||
List<OtaManageApplyEO> otaManageApplyEOList = this.getBaseMapper().getOtaList(otaManageApplyEO);
|
||||
//studio数据权限
|
||||
if (isOtaManager()) {
|
||||
if (isOtaManager() || isRegulationOwner()) {
|
||||
otaManageApplyEOList = this.getBaseMapper().getOtaList(otaManageApplyEO);
|
||||
} else {
|
||||
otaManageApplyEOList = getStudioData(otaManageApplyEO, otaManageApplyEOList);
|
||||
@@ -724,15 +727,15 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
}
|
||||
if(StringUtils.isEmpty(otaManageApplyEO.getOrderByField())){
|
||||
Collections.sort(otaManageApplyEOList, (e1, e2) -> {
|
||||
Date e1CreatedAt = ObjectUtils.isNotEmpty(e1.getCreatedAt()) ? e1.getCreatedAt() : new Date(0);
|
||||
Date e2CreatedAt = ObjectUtils.isNotEmpty(e2.getCreatedAt()) ? e2.getCreatedAt() : new Date(0);
|
||||
return e2CreatedAt.compareTo(e1CreatedAt);
|
||||
String e1ReleaseName = StringUtils.isNotBlank(e1.getReleaseDate()) ? e1.getReleaseDate() : "";
|
||||
String e2ReleaseName = StringUtils.isNotBlank(e2.getReleaseDate()) ? e2.getReleaseDate() : "";
|
||||
return comparator.compare(e2ReleaseName, e1ReleaseName);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private boolean hasPermission(String plannedBpLaunchBatch){
|
||||
if(isOtaManager()){
|
||||
if(isOtaManager()||isRegulationOwner()){
|
||||
return true;
|
||||
}
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
@@ -757,6 +760,9 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
if(!hasPermission(otaManageApplyEO.getPlannedBpLaunchBatch())){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
boolean isStudio = isStudio();
|
||||
boolean isRegulationOwner = isRegulationOwner();
|
||||
List<OtaManageApplyEO> otaManageApplyEOList = this.getBaseMapper().getOtaCarPage(otaManageApplyEO);
|
||||
List<OtaManageApplyEO> list = new ArrayList<>();
|
||||
Map<String, OtaManageApplyEO> omaMap = new HashMap<>();
|
||||
@@ -807,6 +813,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
}
|
||||
}
|
||||
}
|
||||
List<SysDictItem> regionDictList = sysDictItemServiceImpl.selectItemsByDictCode(DicCodeEnum.CERTIFICATION_PROGRESS.getCode());
|
||||
list = new ArrayList<>(omaMap.values());
|
||||
if (!list.isEmpty()) {
|
||||
List<VersionVO> vprojectVersionList = getProjectVersionList(otaManageApplyEO.getAppliedVehicleProject(), null);
|
||||
@@ -899,6 +906,23 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
manageApplyEO.setMatchStatus(OtaStatusEnum.NA.getKey());
|
||||
manageApplyEO.setDisabled(true);
|
||||
}
|
||||
if(isRegulationOwner && !isStudio){
|
||||
manageApplyEO.setDisabled(true);
|
||||
}
|
||||
if ((StringUtils.isNotBlank(manageApplyEO.getIsDel()) && manageApplyEO.getIsDel().equals("1"))
|
||||
|| (StringUtils.isNotBlank(manageApplyEO.getStatus()) && manageApplyEO.getStatus().equals("Discard"))) {
|
||||
manageApplyEO.setDiscard(true);
|
||||
manageApplyEO.setDisabled(true);
|
||||
}
|
||||
if (StringUtils.isNotBlank(manageApplyEO.getAttestationSchedule())) {
|
||||
List<SysDictItem> collect = regionDictList.stream()
|
||||
.filter(e -> e.getItemValue().equals(manageApplyEO.getAttestationSchedule())).collect(Collectors.toList());
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
manageApplyEO.setAttestationScheduleText(collect.get(0).getItemText());
|
||||
} else {
|
||||
manageApplyEO.setAttestationScheduleText(collect.get(0).getEnName());
|
||||
}
|
||||
}
|
||||
if (StringUtils.isBlank(manageApplyEO.getMatchStatus())) {
|
||||
manageApplyEO.setMatchStatus(OtaStatusEnum.TO_BE_MATCHED.getKey());
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
@@ -1273,7 +1297,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
}
|
||||
|
||||
//认证进度数据字典 certification_progress
|
||||
List<SysDictItem> regionDictList = sysDictItemServiceImpl.selectItemsByDictCode("certification_progress");
|
||||
List<SysDictItem> regionDictList = sysDictItemServiceImpl.selectItemsByDictCode(DicCodeEnum.CERTIFICATION_PROGRESS.getCode());
|
||||
|
||||
List<DictModel> regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
||||
|
||||
@@ -1517,6 +1541,22 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为法规工程师
|
||||
*/
|
||||
private boolean isRegulationOwner() {
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<SysUserRole> userRoleList = this.sysUserRoleMapper.selectList(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, currentUser.getId())); // 查询用户所有角色
|
||||
if (CollectionUtils.isNotEmpty(userRoleList)) {
|
||||
for (SysUserRole role : userRoleList) {
|
||||
if (role.getRoleId().equals(RoleEnum.REGULATION_OWNER.getId())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isStudio() {
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<SysUserRole> userRoleList = this.sysUserRoleMapper.selectList(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, currentUser.getId())); // 查询用户所有角色
|
||||
@@ -1579,6 +1619,9 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
|
||||
}
|
||||
|
||||
public void temporarySave(List<OtaManageApplyEO> list, boolean isSubmit, String cut) {
|
||||
if (!isOtaManager() || !isStudio()) {
|
||||
return;
|
||||
}
|
||||
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
List<String> idList = list.stream()
|
||||
|
||||
Reference in New Issue
Block a user