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 implements IModifyAttributeService { @Override public boolean deleteLogic(@NotEmpty List ids) { return false; } @Override public boolean changeStatus(@NotEmpty List ids, Integer status) { return false; } /** * 完成调整 * * @param modifyAttributeInfoDOList 完成调整的信息 * @throws VciBaseException 修改出错的时候会抛出异常 */ @Override public void finishModify(List modifyAttributeInfoDOList) throws VciBaseException { VciBaseUtil.alertNotNull(modifyAttributeInfoDOList,"完成调整的信息"); Map 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> oidCollections = VciBaseUtil.switchCollectionForOracleIn(oidHandleResultMap.keySet()); for(Collection oidCollection : oidCollections){ List attributeInfoDOList = baseMapper.selectList(Wrappers.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); } } } } }