lihang
2023-07-04 aedc56b3c034ef33811ca873debee68d6f963a88
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
@@ -1,12 +1,16 @@
package com.vci.ubcs.omd.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vci.ubcs.omd.entity.BtmType;
import com.vci.ubcs.omd.service.IBtmTypeService;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.omd.wrapper.BtmTypeWrapper;
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
import com.vci.ubcs.starter.web.pagemodel.PageHelper;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
@@ -14,6 +18,9 @@
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.cglib.beans.BeanMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@@ -33,6 +40,8 @@
   private final IBtmTypeService btmTypeService;
   private final String DOMAIN = "domain";
   /**
    * 参照获取业务类型详情信息
@@ -41,6 +50,7 @@
    * @return 业务类型详情信息
    */
   @Override
   @GetMapping(GET_DETAIL)
   public R<BtmTypeVO> getDetail(String oid) {
      return R.data(btmTypeService.getBtmTypeByOid(oid));
   }
@@ -48,34 +58,68 @@
   /**
    * 参照列表查询
    *
    * @param condition 查询条件
    * @param query     分页条件
    * @param domain    领域值
    * @param baseQueryObject 查询条件对象
    * @return 查询结果
    */
   @Override
   public R<IPage<BtmTypeVO>> getRefPage(Map<String, Object> condition, Query query, String domain) {
      Func.requireNotNull(domain,"领域值");
      IPage<BtmType> page = btmTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition, BtmType.class).lambda().eq(BtmType::getDomain, domain).orderByAsc(BtmType::getId));
      IPage<BtmTypeVO> pageVO = new Page<>();
   @PostMapping(GET_REF_PAGE)
   public R<Page<BtmTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
      Map<String, String> conditionMap = baseQueryObject.getConditionMap();
      if (conditionMap == null){
         conditionMap = new HashMap<>(16);
      }
      if (!conditionMap.containsKey(DOMAIN)){
         return R.fail("领域值不能为空");
      }
      PageHelper pageHelper = baseQueryObject.getPageHelper();
      if (pageHelper == null){
         pageHelper = new PageHelper(-1);
      }
      String domainValue = conditionMap.get(DOMAIN);
      VciBaseUtil.alertNotNull(domainValue,"领域值");
      conditionMap.remove(DOMAIN);
//      BtmType queryObj = new BtmType();
//      BeanMap.create(queryObj).putAll(conditionMap);
      Map<String, Object> condition = new HashMap<>(conditionMap);
      Query query = new Query();
      query.setSize(pageHelper.getLimit());
      query.setCurrent(pageHelper.getPage());
      IPage<BtmType> page = btmTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition,BtmType.class).lambda().eq(BtmType::getBizDomain, domainValue).orderByAsc(BtmType::getId));
      if (CollectionUtils.isEmpty(page.getRecords())){
         return R.data(null);
      }
      Page<BtmTypeVO> pageVO = new Page<>();
      BeanUtil.copy(page,pageVO);
      pageVO.setRecords(BtmTypeWrapper.build().listEntityVO(page.getRecords()));
      R<IPage<BtmTypeVO>> r = R.data(pageVO);
      R<Page<BtmTypeVO>> r = R.data(pageVO);
      r.setSuccess(true);
      return r;
   }
   /**
    * 参照列表查询
    *
    * @param condition 查询条件
    * @param domain    领域值
    * @param baseQueryObject 查询条件对象
    * @return 查询结果
    */
   @Override
   public R<List<BtmTypeVO>> getRef(Map<String, Object> condition, String domain) {
      Func.requireNotNull(domain,"领域值");
      List<BtmType> list = btmTypeService.list(Condition.getQueryWrapper(condition, BtmType.class).lambda().eq(BtmType::getDomain, domain).orderByAsc(BtmType::getId));
   @PostMapping(GET_REF)
   public R<List<BtmTypeVO>> getRef(BaseQueryObject baseQueryObject) {
      Map<String, String> conditionMap = baseQueryObject.getConditionMap();
      if (conditionMap == null){
         conditionMap = new HashMap<>(16);
      }
      if (!conditionMap.containsKey(DOMAIN)){
         return R.fail("领域值不能为空");
      }
      String domainValue = conditionMap.get(DOMAIN);
      VciBaseUtil.alertNotNull(domainValue,"领域值");
      conditionMap.remove(DOMAIN);
      BtmType queryObj = new BtmType();
      BeanMap.create(queryObj).putAll(conditionMap);
      List<BtmType> list = btmTypeService.list(Condition.getQueryWrapper(queryObj).lambda().eq(BtmType::getBizDomain, domainValue).orderByAsc(BtmType::getId));
      if (CollectionUtils.isEmpty(list)){
         return R.data(null);
      }
      return R.data(BtmTypeWrapper.build().listEntityVO(list));
   }
@@ -86,6 +130,7 @@
    * @return 业务对象
    */
   @Override
   @PostMapping(GET_BY_IDS)
   public R<List<BtmTypeVO>> selectByIdCollection(List<String> ids) {
      Func.requireNotNull(ids,"业务类型英文名称");
      List<BtmTypeVO> voList = BtmTypeWrapper.build().listEntityVO(
@@ -94,6 +139,9 @@
            )
         ).orElseGet(ArrayList::new)
      );
      if (CollectionUtils.isEmpty(voList)){
         return R.data(null);
      }
      return R.data(voList);
   }
@@ -104,7 +152,8 @@
    * @return 业务类型列表,如果有不存在的不会返回,全部不存在的则返回空列表
    */
   @Override
   public R<List<BtmTypeVO>> listBtmTypeByOidCollection(Collection<String> pkBtmTypeCollection) {
   @PostMapping(GET_BY_OIDS)
   public R<List<BtmTypeVO>> listBtmTypeByOidCollection(List<String> pkBtmTypeCollection) {
      Func.requireNotNull(pkBtmTypeCollection,"业务类型主键");
      List<BtmTypeVO> voList = BtmTypeWrapper.build().listEntityVO(
         Optional.ofNullable(btmTypeService.list(
@@ -112,6 +161,42 @@
            )
         ).orElseGet(ArrayList::new)
      );
      if (CollectionUtils.isEmpty(voList)){
         return R.data(null);
      }
      return R.data(voList);
   }
   /**
    * 获取业务类型,只有默认字段
    *
    * @param btmTypeId 业务类型id
    * @return 默认字段属性
    */
   @Override
   public R<BtmTypeVO> getDefaultAttrByBtmId(String btmTypeId) {
      return R.data(Optional.ofNullable(btmTypeService.getDefaultAttrByBtmId(btmTypeId)).orElseGet(BtmTypeVO::new));
   }
   /**
    * 获取业务类型,有所有的字段
    *
    * @param btmTypeId 业务类型id
    * @return 所有字段
    */
   @Override
   public R<BtmTypeVO> getAllAttributeByBtmId(String btmTypeId) {
      return R.data(Optional.ofNullable(btmTypeService.getAllAttributeByBtmId(btmTypeId)).orElseGet(BtmTypeVO::new));
   }
   /**
    * 获取业务类型,有所有的字段
    *
    * @param btmTypeOid 业务类型主键
    * @return 所有字段
    */
   @Override
   public R<BtmTypeVO> getAllAttributeByBtmOid(String btmTypeOid) {
      return R.data(Optional.ofNullable(btmTypeService.getAllAttributeByBtmOid(btmTypeOid)).orElseGet(BtmTypeVO::new));
   }
}