yuxc
2024-06-05 e6a35cef322110bdae782266dfac11eb4f7cdce1
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java
@@ -1,13 +1,14 @@
package com.vci.web.dao.impl;
import com.vci.base.common.utility.ObjectUtility;
import com.vci.corba.common.VCIError;
import com.vci.corba.framework.data.UserEntityInfo;
import com.vci.client.bof.ClientLinkObject;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.workflow.WorkflowService;
import com.vci.corba.workflow.WorkflowServicePrx;
import com.vci.corba.workflow.data.*;
import com.vci.corba.workflow.method.WorkflowService;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.frameworkcore.pagemodel.SmUserVO;
import com.vci.rmip.workflow.server.template.TasksAssigned;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
@@ -16,7 +17,6 @@
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.constant.WFVariablesKeyConstant;
import com.vci.web.dao.WebProcessDaoI;
import com.vci.web.model.ProcessInstance;
import com.vci.web.model.ProcessTask;
@@ -31,16 +31,11 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
import plm.bs.bom.clientobject.ClientBusinessObject;
import plm.bs.bom.clientobject.ClientLinkObject;
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
/**
@@ -82,7 +77,7 @@
   /**
    * 平台的流程服务
    */
   private WorkflowService workService = null;
   private WorkflowServicePrx workService = null;
   /**
    * 平台调用客户端
@@ -563,7 +558,7 @@
      WebUtil.alertNotNull(executionId,"流程执行主键",key,"参数Key");
      UserEntityInfo ueo = new UserEntityInfo();
      SessionInfo si = WebUtil.getCurrentUserSessionInfo();
      ueo.ip = si.getIp();
//      ueo..ip = si.getIp();
      ueo.modules = "流程";
      ueo.userName = si.getUserId();
//      while(StringUtils.countMatches(executionId,".")>1){
@@ -611,7 +606,7 @@
    * @throws VciBaseException
    */
   @Override
   public List<ClientLinkObject> getDataCloInTask(String taskOid,String executionid) throws VciBaseException {
   public List<ClientLinkObject> getDataCloInTask(String taskOid, String executionid) throws VciBaseException {
      Map<String,String> conditionMap = new HashMap<String, String>();
      if(StringUtils.isNotBlank(taskOid)) {
         conditionMap.put("f_oid", taskOid.trim());
@@ -653,7 +648,7 @@
            }else {
               caluesList.add("*");
            }
            List<ClientBusinessObject> cbos = boService.queryCBO(btm, conditionMap,null,caluesList);
            List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryCBO(btm, conditionMap,null,caluesList);
            data.addAll(boService.cbos2Map(cbos));
         }
      }
@@ -731,16 +726,16 @@
      PageHelper pageHelper = new PageHelper(-1);
      pageHelper.setSort("endTime");
      pageHelper.setOrder(pageHelper.asc);
      List<ClientBusinessObject> undoTaskCbos= boService.queryCBO(workitemBtmType, conditionMap);
      List<com.vci.client.bof.ClientBusinessObject> undoTaskCbos= boService.queryCBO(workitemBtmType, conditionMap);
      if(undoTaskCbos != null && undoTaskCbos.size() > 0) {
         for(ClientBusinessObject cbo : undoTaskCbos) {
         for(com.vci.client.bof.ClientBusinessObject cbo : undoTaskCbos) {
            ProcessHistoryVO his = new ProcessHistoryVO();
            String taskName = cbo.getName();
            if(StringUtils.contains(taskName,"-")) {
               taskName = taskName.substring(taskName.lastIndexOf("-") + 1);
            }
            his.setTaskName(taskName);
            his.setCreateTime(cbo.getCreateTime());
            his.setCreateTime(String.valueOf(cbo.getCreateTime()));
            String userIdString = cbo.getAttributeValue("principal");
            if(StringUtils.contains(userIdString,":")) {
               userIdString = userIdString.substring(userIdString.indexOf(":") + 1);
@@ -813,14 +808,9 @@
   }
   @Override
   public WorkflowService getWorkService() throws VciBaseException{
   public WorkflowServicePrx getWorkService() throws VciBaseException{
      if(workService == null){
         try {
            this.workService = platformClientUtil.getLogonFactoryService().getWorkflowService();
         } catch (VCIError e) {
//            logger.error(e.error_code,e);
            throw WebUtil.getVciBaseException(e);
         }
         this.workService = platformClientUtil.getLogonFactoryService();
      }
      return workService;
   }
@@ -885,8 +875,8 @@
   }
   
   @Override
   public TasksAssigned getProxy() throws VciBaseException{
      TasksAssigned assign = null;
   public TasksAssignedInfo getProxy() throws VciBaseException{
      TasksAssignedInfo assign = null;
//      try {
//         TasksAssignedInfo taskAss = getWorkService().getTasksAssignedByUserName("", WebUtil.getUserEntityInfo( "流程"));
//         if(taskAss!=null && StringUtils.isNotEmpty(taskAss.id)){
@@ -946,19 +936,19 @@
            oidList.add(oid);
         }
         //转换成500长度的
         List<ClientBusinessObject> cboList = new ArrayList<ClientBusinessObject>();
         List<com.vci.client.bof.ClientBusinessObject> cboList = new ArrayList<com.vci.client.bof.ClientBusinessObject>();
         if(oidList.size()>500){
            List<List<String>> oidListForIn = WebUtil.switchListForOracleIn(oidList);
            for(List<String> oidListForInRecord : oidListForIn){
               Map<String,String> conditionMap = new HashMap<String, String>();
               conditionMap.put("oid",QueryOptionConstant.IN + "(" + WebUtil.toInSql(oidListForInRecord.toArray(new String[0])) + ")" );
               List<ClientBusinessObject> tempCbos = boService.queryCBO(btmType,conditionMap);
               List<com.vci.client.bof.ClientBusinessObject> tempCbos = boService.queryCBO(btmType,conditionMap);
               cboList.addAll(tempCbos);
            }
         }else{
            Map<String,String> conditionMap = new HashMap<String, String>();
            conditionMap.put("oid",QueryOptionConstant.IN + "(" + WebUtil.toInSql(oidList.toArray(new String[0])) + ")" );
            List<ClientBusinessObject> tempCbos = boService.queryCBO(btmType,conditionMap);
            List<com.vci.client.bof.ClientBusinessObject> tempCbos = boService.queryCBO(btmType,conditionMap);
            cboList.addAll(tempCbos);
         }
         //找到这个业务类型的起始状态