ludc
2024-12-04 e405b861b9521f5ea38c5402203a5b05988f9de2
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
@@ -4,16 +4,23 @@
import com.vci.common.qt.object.QueryTemplate;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.UserInfo;
import com.vci.corba.omd.data.*;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.data.LinkObject;
import com.vci.corba.omd.data.RevisionDataInfo;
import com.vci.corba.omd.data.VersionDataInfo;
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.qtm.QTInfo;
import com.vci.corba.query.data.BOAndLO;
import com.vci.dto.*;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.frameworkcore.lcstatuspck.ReleaseDataLCStatus;
import com.vci.lcstatuspck.FrameworkDataLCStatus;
import com.vci.lcstatuspck.ReleaseDataLCStatus;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.query.UIDataGridQuery;
import com.vci.query.UIFormQuery;
import com.vci.query.UILinkTypeDataQuery;
import com.vci.query.UITreeQuery;
import com.vci.starter.revision.bo.TreeWrapperOptions;
import com.vci.starter.web.annotation.bus.VciChangeDataAfter;
import com.vci.starter.web.annotation.bus.VciChangeDataBefore;
@@ -25,16 +32,12 @@
import com.vci.starter.web.model.BaseModel;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.*;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.enumpck.DeleteTypeEnum;
import com.vci.web.enumpck.UIFieldTypeEnum;
import com.vci.web.enumpck.UITreeLoadTypeEnum;
import com.vci.web.query.UIDataGridQuery;
import com.vci.web.query.UIFormQuery;
import com.vci.web.query.UILinkTypeDataQuery;
import com.vci.web.query.UITreeQuery;
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;
@@ -49,6 +52,7 @@
import java.util.stream.Collectors;
import static com.vci.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
/**
 * UI上的数据查询
@@ -874,7 +878,7 @@
        if((baseModelDTOList == null || CollectionUtils.isEmpty(baseModelDTOList.getDataList())) && (baseLinkModelDTOList == null || CollectionUtils.isEmpty(baseLinkModelDTOList.getDataList()))){
            return BaseResult.success();
        }
        String btmType = (baseModelDTOList !=null && !CollectionUtils.isEmpty(baseModelDTOList.getDataList()))? baseModelDTOList.getDataList().get(0).getBtmname():null;
        String btmType = (baseModelDTOList !=null && !CollectionUtils.isEmpty(baseModelDTOList.getDataList()))? baseModelDTOList.getDataList().get(0).getBtmName():null;
        String linkType = (baseLinkModelDTOList !=null && !CollectionUtils.isEmpty(baseLinkModelDTOList.getDataList()))?baseLinkModelDTOList.getDataList().get(0).getLinkType():null;
        if(StringUtils.isNotBlank(preEvent)){
            //前置事件
@@ -1084,7 +1088,7 @@
    public BaseModelDTOList formData2DTOList(FormDataDTO formDataDTO){
        BaseModelDTOList modelDTOList = new BaseModelDTOList();
        BaseModelDTO modelDTO = new BaseModelDTO();
        BeanUtil.convert((BaseModelDTO)formDataDTO,modelDTO);
        BeanUtilForVCI.convert(formDataDTO,modelDTO);
        modelDTO.setData(formDataDTO.getData());
        List<BaseModelDTO> modelDTOS = new ArrayList<>();
        modelDTOS.add(modelDTO);
@@ -1102,7 +1106,7 @@
        BaseLinkModelDTOList modelDTOList = new BaseLinkModelDTOList();
        BaseLinkModelDTO modelDTO = new BaseLinkModelDTO();
        modelDTO.setData(formLinkDataDTO.getData());
        BeanUtil.convert((BaseLinkModelDTO)formLinkDataDTO,modelDTO);
        BeanUtilForVCI.convert(formLinkDataDTO,modelDTO);
        List<BaseLinkModelDTO> linkModelDTOS = new ArrayList<>();
        linkModelDTOS.add(modelDTO);
        modelDTOList.setDataList(linkModelDTOS);
@@ -1121,7 +1125,7 @@
        modelDTOS.stream().findAny().orElseGet(()->null);
        formDataDTOList.getFormDataDTOS().forEach(formDataDTO -> {
            BaseModelDTO modelDTO = new BaseModelDTO();
            BeanUtil.convert((BaseModelDTO)formDataDTO,modelDTO);
            BeanUtilForVCI.convert((BaseModelDTO)formDataDTO,modelDTO);
            modelDTO.setData(formDataDTO.getData());
            modelDTOS.add(modelDTO);
        });
@@ -1140,7 +1144,7 @@
        List<BaseLinkModelDTO> modelDTOS = new ArrayList<>();
        formLinkDataDTOList.getDataDTOList().forEach(formDataDTO -> {
            BaseLinkModelDTO modelDTO = new BaseLinkModelDTO();
            BeanUtil.convert((BaseLinkModelDTO)formDataDTO,modelDTO);
            BeanUtilForVCI.convert((BaseLinkModelDTO)formDataDTO,modelDTO);
            modelDTO.setData(formDataDTO.getData());
            modelDTOS.add(modelDTO);
        });
@@ -1158,8 +1162,8 @@
    @Override
    public BaseResult<Map<String, Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException, PLException {
        //首先判断对象是否为空
        VciBaseUtil.alertNotNull(formDataDTO,"添加的数据对象",formDataDTO.getBtmname(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId());
        VciBaseUtil.alertNotNull(formDataDTO,"添加的数据对象",formDataDTO.getBtmName(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmName(), formDataDTO.getFormDefineId());
        String preEvent = formDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formData2DTOList(formDataDTO);
        BaseResult beforeResult = callPreEvent(modelDTOList, null,preEvent, VciChangeDocumentTypeEnum.ADD);
@@ -1268,7 +1272,7 @@
        baseModel.setOid(cbo.oid);
        baseModel.setNameOid(cbo.nameoid);
        baseModel.setRevisionOid(cbo.revisionid);
        baseModel.setBtmname(cbo.btName);
        baseModel.setBtmName(cbo.btName);
        baseModel.setLastR(String.valueOf(cbo.isLastR));
        baseModel.setLastV(String.valueOf(cbo.isLastV));
        baseModel.setFirstR(String.valueOf(cbo.isFirstR));
@@ -1425,7 +1429,7 @@
        VciBaseUtil.alertNotNull(formDataDTOList,"要添加的数据",formDataDTOList.getFormDataDTOS(),"要添加的数据");
        //首先判断对象是否为空
        FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get();
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmname(), firstFormDataDTO.getId());
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmName(), firstFormDataDTO.getId());
        String preEvent = firstFormDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formDataList2DTOList(formDataDTOList);
        BaseResult beforeResult = callPreEvent(modelDTOList, null, preEvent, VciChangeDocumentTypeEnum.ADD);
@@ -1462,7 +1466,7 @@
        }
        if(!CollectionUtils.isEmpty(releasedFileOids)){
            releasedFileOids.forEach((oid,fileOids)->{
                fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids);
                fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids);
            });
        }
        //后置事件
@@ -1493,8 +1497,8 @@
    @Override
    public BaseResult<Map<String, Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException, PLException {
        //首先判断对象是否为空
        VciBaseUtil.alertNotNull(formDataDTO,"修改的数据对象",formDataDTO.getBtmname(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId());
        VciBaseUtil.alertNotNull(formDataDTO,"修改的数据对象",formDataDTO.getBtmName(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmName(), formDataDTO.getFormDefineId());
        String preEvent = formDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formData2DTOList(formDataDTO);
        BaseResult beforeResult = callPreEvent(modelDTOList,null, preEvent, VciChangeDocumentTypeEnum.EDIT);
@@ -1538,8 +1542,8 @@
    @Override
    public BaseResult<Map<String, Object>> upRevision(FormDataDTO formDataDTO) throws VciBaseException, PLException {
        //首先判断对象是否为空
        VciBaseUtil.alertNotNull(formDataDTO,"修改的数据对象",formDataDTO.getBtmname(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号",formDataDTO.getCopyFromVersion(),"老版本的主键");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId());
        VciBaseUtil.alertNotNull(formDataDTO,"修改的数据对象",formDataDTO.getBtmName(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号",formDataDTO.getCopyFromVersion(),"老版本的主键");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmName(), formDataDTO.getFormDefineId());
        String preEvent = formDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formData2DTOList(formDataDTO);
        BaseResult beforeResult = callPreEvent(modelDTOList, null,preEvent, VciChangeDocumentTypeEnum.UPREVISION);
@@ -1552,7 +1556,7 @@
        Map<String,String> conditionMap = WebUtil.getOidQuery(formDataDTO.getCopyFromVersion());
        conditionMap.put("ts", VciDateUtil.date2Str(ts,VciDateUtil.DateTimeMillFormat));
        conditionMap.put("oid",formDataDTO.getCopyFromVersion());
        businessObjects = boService.queryCBO(formDataDTO.getBtmname(), conditionMap);
        businessObjects = boService.queryCBO(formDataDTO.getBtmName(), conditionMap);
        if(businessObjects.size() ==0){
            throw new VciBaseException("数据不是最新的,建议您刷新后重新操作");
        }
@@ -1599,7 +1603,7 @@
        VciBaseUtil.alertNotNull(formDataDTOList,"要修改的数据",formDataDTOList.getFormDataDTOS(),"要修改的数据");
        //首先判断对象是否为空
        FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get();
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmname(), firstFormDataDTO.getId());
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmName(), firstFormDataDTO.getId());
        String preEvent = firstFormDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formDataList2DTOList(formDataDTOList);
        BaseResult beforeResult = callPreEvent(modelDTOList,null, preEvent, VciChangeDocumentTypeEnum.EDIT);
@@ -1629,7 +1633,7 @@
        }
        if(!CollectionUtils.isEmpty(releasedFileOids)){
            releasedFileOids.forEach((oid,fileOids)->{
                fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids);
                fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids);
            });
        }
        //后置事件
@@ -1654,7 +1658,7 @@
    @Override
    public BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(deleteDataDTO,"数据传输对象",deleteDataDTO.getDataList(),"数据传输对象");
        String btmName = deleteDataDTO.getDataList().get(0).getBtmname();
        String btmName = deleteDataDTO.getDataList().get(0).getBtmName();
        List<String> oidList = deleteDataDTO.getDataList().stream().map(BaseModelDTO::getOid).collect(Collectors.toList());
        //看看级联删除。只有自己引用自己的时候可以级联删除
        List<BusinessObject> cbo = null;