package com.vci.ubcs.omd.service.impl;
|
|
import com.alibaba.cloud.commons.lang.StringUtils;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.vci.ubcs.omd.entity.ModifyAttributeInfo;
|
import com.vci.ubcs.omd.mapper.ModifyAttributeInfoMapper;
|
import com.vci.ubcs.omd.service.IModifyAttributeService;
|
import com.vci.ubcs.starter.exception.VciBaseException;
|
import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
|
import com.vci.ubcs.starter.web.util.VciBaseUtil;
|
import org.springblade.core.secure.BladeUser;
|
import org.springblade.core.secure.utils.AuthUtil;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import javax.validation.constraints.NotEmpty;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* Description: 需要修改数据库表中字段的信息服务实现类
|
*
|
* @author LiHang
|
* @date 2023/5/4
|
*/
|
@Service
|
public class ModifyAttributeServiceImpl extends ServiceImpl<ModifyAttributeInfoMapper, ModifyAttributeInfo> implements IModifyAttributeService {
|
@Override
|
public boolean deleteLogic(@NotEmpty List<Long> ids) {
|
return false;
|
}
|
|
@Override
|
public boolean changeStatus(@NotEmpty List<Long> ids, Integer status) {
|
return false;
|
}
|
|
/**
|
* 完成调整
|
*
|
* @param modifyAttributeInfoDOList 完成调整的信息
|
* @throws VciBaseException 修改出错的时候会抛出异常
|
*/
|
@Override
|
public void finishModify(List<ModifyAttributeInfo> modifyAttributeInfoDOList) throws VciBaseException {
|
VciBaseUtil.alertNotNull(modifyAttributeInfoDOList,"完成调整的信息");
|
Map<String,String> oidHandleResultMap = modifyAttributeInfoDOList.stream().collect(Collectors.toMap(ModifyAttributeInfo::getOid, ModifyAttributeInfo::getHandleResult));
|
BladeUser user = Optional.ofNullable(AuthUtil.getUser()).orElseGet(BladeUser::new);
|
String handlerUser = user.getAccount() + "(" + user.getUserName() + ")";
|
Date now = new Date();
|
if(!CollectionUtils.isEmpty(oidHandleResultMap)){
|
Collection<Collection<String>> oidCollections = VciBaseUtil.switchCollectionForOracleIn(oidHandleResultMap.keySet());
|
for(Collection<String> oidCollection : oidCollections){
|
List<ModifyAttributeInfo> attributeInfoDOList = baseMapper.selectList(Wrappers.<ModifyAttributeInfo>query().lambda().in(ModifyAttributeInfo::getOid,oidCollection));
|
if(!CollectionUtils.isEmpty(attributeInfoDOList)){
|
attributeInfoDOList.stream().forEach( s -> {
|
s.setHandleFinishFlag(BooleanEnum.TRUE.getValue());
|
s.setHandleUserName(handlerUser);
|
s.setHandleDate(now);
|
s.setLastModifier(user.getAccount());
|
s.setLastModifyTime(now);
|
s.setTs(now);
|
if(oidHandleResultMap.containsKey(s.getOid())){
|
s.setHandleResult(oidHandleResultMap.get(s.getOid()));
|
}
|
if(StringUtils.isBlank(s.getHandleResult())){
|
s.setHandleResult("执行成功");
|
}
|
});
|
saveOrUpdateBatch(attributeInfoDOList);
|
}
|
}
|
}
|
}
|
}
|