dangsn
2024-12-03 d0ae279ff3b83358d1c07f4481a041c4ad335026
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java ÐÞ¸Ä
@@ -12,7 +12,6 @@
import com.vci.corba.query.ObjectQueryServicePrx;
import com.vci.corba.query.data.BtmRefQueryOption;
import com.vci.corba.query.data.KV;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.starter.web.annotation.Column;
@@ -21,12 +20,12 @@
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.BeanUtilForVCI;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.properties.WebProperties;
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;
@@ -34,10 +33,10 @@
import org.dom4j.DocumentHelper;
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 javax.annotation.Resource;
import java.lang.reflect.Field;
import java.util.*;
import java.util.stream.Collectors;
@@ -48,76 +47,64 @@
 * @author weidy
 */
@Service
public class WebBoServiceImpl implements WebBoServiceI{
   /**
    * æžšä¸¾æœåŠ¡
    */
   @Autowired
   private OsEnumServiceI enumService;//枚举服务
   /**
    * å±žæ€§æœåŠ¡
    */
   @Autowired
   private OsAttributeServiceI attrService;//属性服务
public class WebBoServiceImpl implements WebBoServiceI {
   /**
    * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
    */
   @Autowired
   private OsLifeCycleServiceI lifeService;//生命周期服务
   /**
    * çŠ¶æ€çš„æœåŠ¡
    */
   @Autowired
   private OsStatusServiceI statusService;
   /**
    * ç”¨æˆ·æŸ¥è¯¢æœåŠ¡
    */
   @Autowired
   private SmUserQueryServiceI userQueryService;
   /**
    * é“¾æŽ¥ç±»åž‹æœåŠ¡
    */
   @Autowired
   private WebLoServiceI loService;
   /**
    * é…ç½®ä¿¡æ¯
    */
   @Autowired
   private WebProperties webProperties;
   /**
    * å¤šè¯­è¨€å‰ç¼€
    */
   private final String msgCodePrefix = "com.vci.web.boService.";
   /**
    * æ—¥å¿—对象
    */
   private Logger logger = LoggerFactory.getLogger(getClass());
   /**
    * å¤šè¯­è¨€å‰ç¼€
    */
   private final String msgCodePrefix = "com.vci.web.boService.";
   /**
    * æžšä¸¾æœåŠ¡
    */
   @Resource
   private WebEnumServiceI enumService;//枚举服务
   /**
    * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
    */
   @Resource
   private WebLifeCycleServiceI lifeService;//生命周期服务
   /**
    * çŠ¶æ€çš„æœåŠ¡
    */
   @Resource
   private WebStatusServiceI statusService;
   /**
    * ç”¨æˆ·æŸ¥è¯¢æœåŠ¡
    */
   @Resource
   private SmUserQueryServiceI userQueryService;
   /**
    * é…ç½®ä¿¡æ¯
    */
   @Resource
   private WebProperties webProperties;
   /**
    * ä¸šåŠ¡ç±»åž‹çš„æœåŠ¡
    */
   @Autowired
   private OsBtmServiceI btmService;
   @Resource
   private WebBtmServiceI btmService;
   /**
    * ç‰ˆæœ¬è§„则的服务
    */
   @Autowired
   private OsRevisionRuleServiceI revisionRuleService;
   @Resource
   private WebRevisionRuleServiceI revisionRuleService;
   /**
    * å¹³å°è°ƒç”¨å®¢æˆ·ç«¯
    */
   @Autowired
   @Resource
   private PlatformClientUtil platformClientUtil;
   /**
@@ -893,7 +880,7 @@
    */
   @Override
   public List<BusinessObject> queryCBOByScheme(String queryScheme,
         Map<String, String> conditionMap, Map<String, String> replaceMap)
         Map<String, String> conditionMap, Map<String, Object> replaceMap)
         throws VciBaseException {
      PageHelper ph = new PageHelper(-1);
      return queryCBOByScheme(queryScheme,conditionMap,replaceMap,ph);
@@ -911,7 +898,7 @@
    */
   @Override
   public List<BusinessObject> queryCBOByScheme(String queryScheme,
         Map<String, String> conditionMap, Map<String, String> replaceMap,
         Map<String, String> conditionMap, Map<String, Object> replaceMap,
         PageHelper ph) throws VciBaseException {
      List<String> clauseList = new ArrayList<String>();
      clauseList.add("*");
@@ -926,7 +913,7 @@
    * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
    */
   @Override
   public QueryTemplate getQtByName(String name, Map<String, String> replaceMap) throws VciBaseException{
   public QueryTemplate getQtByName(String name, Map<String, Object> replaceMap) throws VciBaseException{
      QueryTemplate qt = null;
      try{
         VciBaseUtil.alertNotNull(name,"查询模板的名称");
@@ -935,9 +922,10 @@
         //因为之前平台的Tool.replaceQTValues æ²¡æœ‰å¤„理 ${xxx}。, ä¸ºäº†å¿½ç•¥å¤§å°å†™ï¼Œæˆ‘们这里单独处理 weidy@2021-3-10
         //我们转换为小写
         Condition condition = qt.getCondition();
         Map<String,String> replaceLowMap = new HashMap<>();
         Map<String,Object> replaceLowMap = new HashMap<>();
         if(condition !=null && condition.getCIMap()!=null){
            // Map<String, String> systemVarValueMap = VciSystemVarConstants.getSystemVarValueMap();
            //转小写
            if(!CollectionUtils.isEmpty(replaceMap)){
               replaceMap.forEach((key,value)->{
                  replaceLowMap.put(key.toLowerCase(),value);
@@ -985,7 +973,7 @@
    * @param qt
    * @param replaceLowMap
    */
   private void recurReplaceCiMap(QueryTemplate qt, Map<String,String> replaceLowMap){
   private void recurReplaceCiMap(QueryTemplate qt, Map<String,Object> replaceLowMap){
      //跳出递归
      if(Func.isEmpty(qt)){
         return;
@@ -1009,7 +997,7 @@
                     }
                  }
               }else if(replaceLowMap.containsKey(value.toLowerCase())){
                  lInfo.getValue().setOrdinaryValue(replaceLowMap.get(value.toLowerCase()));
                  lInfo.getValue().setOrdinaryValue((String) replaceLowMap.get(value.toLowerCase()));
               }
            }else {
               recurReplaceCiMap(lInfo.getValue().getQueryTemplate(),replaceLowMap);
@@ -1030,7 +1018,7 @@
    */
   @Override
   public List<BusinessObject> queryCBOByScheme(String queryScheme,
         Map<String, String> conditionMap, Map<String, String> replaceMap,
         Map<String, String> conditionMap, Map<String, Object> replaceMap,
         PageHelper ph, List<String> clauseList) throws VciBaseException {
      QueryTemplate qt = getQtByName(queryScheme,replaceMap);
      return baseQueryCBO(qt,conditionMap,ph,clauseList);
@@ -1134,7 +1122,7 @@
    */
   @Override
   public int queryCountByScheme(String queryScheme,
         Map<String, String> conditionMap, Map<String, String> replaceMap)
         Map<String, String> conditionMap, Map<String, Object> replaceMap)
         throws VciBaseException {
      QueryTemplate qt = getQtByName(queryScheme,replaceMap);
      return baseQueryCount(qt,conditionMap);
@@ -1482,7 +1470,7 @@
   @Override
   public <T> List<T> queryObjectByScheme(String queryScheme, Class<T> c,
         Map<String, String> conditionMap, PageHelper ph,
         Map<String, String> replaceMap) throws VciBaseException {
         Map<String, Object> replaceMap) throws VciBaseException {
      WebUtil.alertNotNull(queryScheme,"查询方案");
      //直接从对象里去查询业务类型的名称
      swapConditionMap(c,conditionMap);
@@ -2108,7 +2096,7 @@
     */
   @Override
   public DataGrid queryGridByScheme(String queryScheme,
         Map<String, String> conditionMap, Map<String, String> replaceMap)
         Map<String, String> conditionMap, Map<String, Object> replaceMap)
         throws VciBaseException {
      return queryGridByScheme(queryScheme,conditionMap,replaceMap,new PageHelper(-1,true),null);
   }
@@ -2124,7 +2112,7 @@
     */
   @Override
   public DataGrid queryGridByScheme(String queryScheme,
         Map<String, String> conditionMap, Map<String, String> replaceMap,
         Map<String, String> conditionMap, Map<String, Object> replaceMap,
         PageHelper ph) throws VciBaseException {
      return queryGridByScheme(queryScheme,conditionMap,replaceMap,ph,null);
   }
@@ -2141,7 +2129,7 @@
     */
   @Override
   public DataGrid queryGridByScheme(String queryScheme,
         Map<String, String> conditionMap, Map<String, String> replaceMap,
         Map<String, String> conditionMap, Map<String, Object> replaceMap,
         PageHelper ph, List<String> clauseList) throws VciBaseException {
      if(ph == null){
         ph = new PageHelper(-1,true);
@@ -2212,7 +2200,7 @@
     */
   @Override
   public DataGrid queryGridClassByScheme(String queryScheme, Class c,
         Map<String, String> conditionMap,Map<String,String> replaceMap) throws VciBaseException {
         Map<String, String> conditionMap,Map<String,Object> replaceMap) throws VciBaseException {
      return queryGridClassByScheme(queryScheme,c,conditionMap,replaceMap,new PageHelper(-1,true));
   }
   
@@ -2227,7 +2215,7 @@
     */
   @Override
   public DataGrid queryGridClassByScheme(String queryScheme, Class c,
         Map<String, String> conditionMap, Map<String,String> replaceMap,PageHelper ph)
         Map<String, String> conditionMap, Map<String,Object> replaceMap,PageHelper ph)
         throws VciBaseException {
      if(ph == null){
         ph = new PageHelper(-1,true);
@@ -2272,9 +2260,13 @@
   public Map cbo2Map(BusinessObject cbo) throws VciBaseException {
      Map<String,String> map = new HashMap<String, String>();
      WebUtil.copyValueToMapFromCbos(cbo, map);
      return map;
      //TODO:20241128 è¿‡æ»¤æŽ‰ç©ºkey和空value
      Map<String, Object> filteredCbo2Map = map.entrySet()
            .stream()
            .filter(entry -> entry.getKey() != null && !entry.getKey().isEmpty() && entry.getValue() != null && !entry.getValue().toString().isEmpty())
            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
      return filteredCbo2Map;
   }
    /**
     * map转为BusinessObject
@@ -2525,7 +2517,7 @@
   @Override
   public <T> int countByQueryWrapper(VciQueryWrapperForDO queryWrapper, Class<T> doClass) throws VciBaseException {
      VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null,doClass);
      BeanUtil.convert(queryWrapper,queryWrapperForDO);
      BeanUtilForVCI.convert(queryWrapper,queryWrapperForDO);
      queryWrapperForDO.clearPage();
      queryWrapperForDO.wrapperSql();
      String sql= queryWrapperForDO.getSelectFieldSql() + " from " + queryWrapperForDO.getTableName() + " " + queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() ;