ludc
2023-11-20 5e449c8bba2273313fd25457cae653a0f340c910
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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);
                }
            }
        }
    }
}