yuxc
2024-06-04 93f7335e1a52591662d5d37f41ac352860b2ca2a
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBtmIOServiceImpl.java
@@ -1,6 +1,9 @@
package com.vci.web.service.impl;
import com.vci.corba.common.VCIError;
import com.vci.corba.omd.etm.EnumType;
import com.vci.corba.omd.lcm.Bound;
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.corba.omd.lcm.TransitionVO;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
import com.vci.starter.poi.util.ExcelUtil;
@@ -8,8 +11,6 @@
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
@@ -20,38 +21,21 @@
import com.vci.web.pageModel.*;
import com.vci.web.properties.OsDDLExportWordFieldProperties;
import com.vci.web.service.*;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.jni.Local;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import plm.bs.omd.linktype.common.LinkTypeProvider;
import plm.corba.attribpool.AttribItem;
import plm.corba.btm.BTMServiceOperations;
import plm.corba.btm.BtmItem;
import plm.corba.enumManager.EnumChild;
import plm.corba.enumManager.EnumItem;
import plm.corba.lifecycle.Bound;
import plm.corba.lifecycle.LifeCyle;
import plm.corba.lifecycle.TransitionVO;
import plm.corba.lifecycle.TransitionVOEvent;
import plm.corba.linkTypeManager.LinkType;
import plm.corba.statePoolManager.StatePool;
import com.vci.corba.omd.etm.EnumItem;
import plm.ddlTool.client.DDLToolClient;
import plm.vo.omd.btm.common.BtmProvider;
import plm.vo.omd.btm.resource.Tool;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import static plm.vo.omd.attribpool.ui.VTDataTypePanel.*;
/**
@@ -128,7 +112,6 @@
     */
    @Autowired
    private OsDDLExportWordFieldProperties wordFieldProperties;
    /**
     * 导入业务类型和链接类型,包含属性,枚举,状态,生命周期,版本规则等全套内容
@@ -260,21 +243,21 @@
            allLifeCycleLowMap.put(id.toLowerCase(Locale.ROOT),lifeCycleVO);
        });
        //不存在的生命周期对象
        List<LifeCyle> unExistLifeCycleList = new ArrayList<LifeCyle>();
        List<LifeCyle> editLifeCycleList = new ArrayList<LifeCyle>();
        List<LifeCycle> unExistLifeCycleList = new ArrayList<LifeCycle>();
        List<LifeCycle> editLifeCycleList = new ArrayList<LifeCycle>();
        String userId = WebUtil.getCurrentUserId();
        String now = VciDateUtil.getNowString(VciDateUtil.DateTimeFormat);
        //循环分析需要添加还是修改
        for(OsLifeCycleDTO lifeCycleDTO : lifeCycleDTOList){
            String lifeCycleId = lifeCycleDTO.getId().toLowerCase().trim();
            LifeCyle lifeCyle = null;
            LifeCycle lifeCyle = null;
            boolean edit = false;
            if(!existLifeCycleLowIds.contains(lifeCycleId)) {
                lifeCyle = new LifeCyle();
                lifeCyle = new LifeCycle();
                lifeCyle.oid = "";
                lifeCyle.id = "";
                lifeCyle.creator = userId;
                lifeCyle.createTime = now;
                lifeCyle.createTime = System.currentTimeMillis();
                lifeCyle.ts = now;
                lifeCyle.name = lifeCycleDTO.getId();
            }else {
@@ -285,7 +268,7 @@
            lifeCyle.description = lifeCycleDTO.getDescription() == null?"":lifeCycleDTO.getDescription();
            lifeCyle.startState = lifeCycleDTO.getStartStatus() == null?"":lifeCycleDTO.getStartStatus();
            lifeCyle.modifier = userId;
            lifeCyle.modifyTime = now;
            lifeCyle.modifyTime = System.currentTimeMillis();
            //找区域
            List<OsLifeCycleLineDTO> lineDTOList = lifeCycleDTO.getLineDTOList();
            if(CollectionUtils.isEmpty(lineDTOList)){
@@ -487,70 +470,75 @@
    private void importEnums(Collection<OsEnumDTO> enumDTOList) throws VciBaseException{
        Set<String> existEnumIdList = enumService.selectAllEnumMap().keySet();
        Map<String, OsEnumVO> allEnumMap = enumService.selectAllEnumMap();
        List< EnumItem> unExistEnumList = new ArrayList<EnumItem>();
        List<EnumItem> editEnumList = new ArrayList<EnumItem>();
        List<EnumType> unExistEnumList = new ArrayList<EnumType>();
        List<EnumType> editEnumList = new ArrayList<EnumType>();
        String userId = WebUtil.getCurrentUserId();
        String now = VciDateUtil.getNowString(VciDateUtil.DateTimeFormat);
        Long nowLong = System.currentTimeMillis();
        for(OsEnumDTO enumDTO : enumDTOList){
            String enumId = enumDTO.getId().toLowerCase().trim();
            if(!existEnumIdList.contains(enumId)){
                EnumItem enumItem = new EnumItem();
                EnumType enumItem = new EnumType();
                enumItem.oid = "";
                enumItem.ts = now;
                enumItem.creator = userId;
                enumItem.createTime = now;
                // enumItem.createTime = now;
                enumItem.createTime = nowLong;
                enumItem.modifier = userId;
                enumItem.modifyTime = now;
                // enumItem.modifyTime = now;
                enumItem.modifyTime = nowLong;
                enumItem.name = enumDTO.getId();
                enumItem.label = enumDTO.getName();
                enumItem.type = "int".equalsIgnoreCase(enumDTO.getEnumValueDataType())?"Integer":"String";
                enumItem.length = enumDTO.getLength();
                List<EnumChild> childList = new ArrayList<EnumChild>();
                List<EnumItem> childList = new ArrayList<EnumItem>();
                Map<String, String> itemMaps = enumDTO.getItemMaps();
                if(CollectionUtils.isEmpty(itemMaps)){
                    throw new VciBaseException("枚举{0}没有选项",new String[]{enumItem.name});
                }
                for(String key : itemMaps.keySet()){
                    String value = itemMaps.get(key);
                    EnumChild enumChild = new EnumChild();
                    EnumItem enumChild = new EnumItem();
                    enumChild.name = value;
                    enumChild.value = key;
                    enumChild.description = "";
                    childList.add(enumChild);
                }
                enumItem.children = childList.toArray(new EnumChild[0]);
                enumItem.items = childList.toArray(new EnumItem[0]);
                unExistEnumList.add(enumItem);
            }else{
                //修改内容
                EnumItem enumItem = new EnumItem();
                EnumType enumItem = new EnumType();
                OsEnumVO enumVO = allEnumMap.get(enumId);
                enumItem.oid = enumVO.getOid();
                enumItem.createTime = VciDateUtil.date2Str(enumVO.getCreateTime(),VciDateUtil.DateTimeFormat);
                // enumItem.createTime = VciDateUtil.date2Str(enumVO.getCreateTime(),VciDateUtil.DateTimeFormat);
                enumItem.createTime = Func.toLong(enumVO.getCreateTime());
                enumItem.creator = enumVO.getCreator();
                enumItem.modifier = userId;
                enumItem.modifyTime = now;
                // enumItem.modifyTime = now;
                enumItem.modifyTime = nowLong;
                enumItem.name = enumVO.getId();
                enumItem.ts =  VciDateUtil.date2Str(enumVO.getTs(),VciDateUtil.DateTimeMillFormat);
                enumItem.label = enumDTO.getName();
                enumItem.type = "int".equalsIgnoreCase(enumDTO.getEnumValueDataType())?"Integer":"String";
                enumItem.length = enumDTO.getLength();
                List<EnumChild> childList = new ArrayList<EnumChild>();
                List<EnumItem> childList = new ArrayList<EnumItem>();
                Map<String, String> itemMaps = enumDTO.getItemMaps();
                if(CollectionUtils.isEmpty(itemMaps)){
                    throw new VciBaseException("枚举{0}没有选项",new String[]{enumItem.name});
                }
                for(String key : itemMaps.keySet()){
                    String value = itemMaps.get(key);
                    EnumChild enumChild = new EnumChild();
                    EnumItem enumChild = new EnumItem();
                    enumChild.name = value;
                    enumChild.value = key;
                    enumChild.description = "";
                    childList.add(enumChild);
                }
                enumItem.children = childList.toArray(new EnumChild[0]);
                enumItem.items = childList.toArray(new EnumItem[0]);
                editEnumList.add(enumItem);
            }
        }