wangting
2025-01-15 5b59d04408cc6602fcb9edd2544f62bef709b8b1
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.vci.web.service.impl;
 
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.portal.data.PLAction;
import com.vci.corba.portal.data.PLTypeAction;
import com.vci.dto.PLTypeActionDTO;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsTypeActionServiceI;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.UITools;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.Arrays;
import java.util.List;
 
/**
 * 类型Action管理服务
 * @author ludc
 * @date 2024/10/24 17:05
 */
@Service
public class OsTypeActionServiceImpl implements OsTypeActionServiceI {
 
    @Autowired
    private PlatformClientUtil platformClientUtil;
 
    /**
     * 根据业务类型名获取类型Action
     * @param typeName 查询条件-业务类型名称
     * @return
     */
    @Override
    public List<PLAction> getTypeActionByType(String typeName) throws PLException {
        VciBaseUtil.alertNotNull(typeName,"查询条件【类型名】");
        PLAction[] plActions = platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
        return Arrays.asList(plActions);
    }
 
    /**
     * 保存类型Action
     * @param plActionDTO
     * @return
     */
    @Override
    public BaseResult savePLTypeAction(PLTypeActionDTO plActionDTO) throws PLException {
        VciBaseUtil.alertNotNull(
                plActionDTO,"添加的类型Action对象",plActionDTO.getPlTypeName(),
                plActionDTO.getActions(),"添加的Action列表"
        );
        String typeName = plActionDTO.getPlTypeName();
        PLAction[] dbActions = platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
        List<PLAction> actions = plActionDTO.getActions();
        //遍历数组和list,比较新添加的索引行是否已经存在
        for(PLAction ac: dbActions){
            for(int i=0; i<actions.size(); i++){
                if(actions.get(i).plOId.equals(ac.plOId)){
                    return BaseResult.fail("已存在名称为 【"+actions.get(i).plName+"】 的action!");
                }
            }
        }
        for(int i=0;i<actions.size();i++){
            PLTypeAction plTypeAction = new PLTypeAction(ObjectUtility.getNewObjectID36(), typeName, actions.get(i).plOId);
            boolean res = UITools.getService().savePLTypeActionEntity(plTypeAction);
            if(!res){
                return BaseResult.fail("类型action保存失败!");
            }
        }
        return BaseResult.success("类型action保存成功!");
    }
 
    /**
     * 移除类型Action
     * @param typeName 所在类型名
     * @param typeActionOIds 类型action
     * @return
     */
    @Override
    public BaseResult delPLTypeActions(String typeName, String typeActionOIds) throws PLException {
        VciBaseUtil.alertNotNull(typeName,"类型名",typeActionOIds,"待移除的类型action主键集合");
        List<String> taOIds = Func.toStrList(typeActionOIds);
        for (String taOId : taOIds) {
            boolean res = UITools.getService().deletePLTypeActionEntityByTypeAndAction(typeName, taOId);
            if(!res){
                return BaseResult.success("类型Action移除失败!");
            }
        }
        return BaseResult.success("类型Action移除成功!");
    }
 
}