xiejun
2023-12-14 3a8545610608eaece0702a1fca82d09956fdd66d
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java
@@ -7,14 +7,18 @@
import com.vci.ubcs.code.applyjtcodeservice.feign.IMdmInterJtClient;
import com.vci.ubcs.code.applyjtcodeservice.service.*;
import com.vci.ubcs.code.applyjtcodeservice.vo.*;
import com.vci.ubcs.code.feign.IMdmEngineClient;
import com.vci.ubcs.starter.revision.model.BaseModel;
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RestController;
@@ -29,9 +33,11 @@
@NonDS
@ApiIgnore
@RestController
@AllArgsConstructor
@Data
@Slf4j
public class MdmInterJtClient implements IMdmInterJtClient {
   @Value("${docking.apply.partCoe:10}")
   public String partCoe;
   /**
    * 集团申请单服务
    */
@@ -48,21 +54,67 @@
   private final IDockingPreMetaAttrService dockingPreMetaAttrService;
   /**
    * 集团申请单服务
    * 集团分类申请单服务
    */
   private final IDockingPreClassifyService dockingPreClassifyService;
   /***
    * 属性映射服务
    */
   private final IDockingPreAttrMappingService dockingPreAttrMappingService;
   /**
    * 集团申请单服务
    * 集团取值范围申请单服务
    */
   private final IDockingPreAttrRangeService dockingPreAttrRangeService;
   /**
    * 集团属性映射配置属性
    */
   private final IGroupMdmInterService groupMdmInterService;
   @Autowired(required = false)
   private IMdmEngineClient mdmEngineClient;
   /***
    * 申请集团编码
    * @return
    */
   public R applyGroupCode(String oids,String btmName){
      try {
         return groupMdmInterService.applyGroupCode(oids,btmName);
      }catch (Throwable e){
         return R.fail("集团码申请失败:"+e.getMessage());
      }
   }
   /***
    * 查询集团属性映射
    * @param codeClassifyOid:编码分类oid
    * @return
    */
   @Override
   public R<List<DockingPreAttrMappingVO>> list_mapping(String codeClassifyOid) {
      List<DockingPreAttrMapping> dockingPreAttrMappings=   dockingPreAttrMappingService.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId,codeClassifyOid));
      List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=new ArrayList<>();
      if(!CollectionUtils.isEmpty(dockingPreAttrMappings)){
         dockingPreAttrMappingVOList=dockingPreAttrMappingService.dockingPreAttrMappingDO2VOS(dockingPreAttrMappings,true);
      }
      return R.data(dockingPreAttrMappingVOList);
   }
   /***
    * 申请集团编码数据维护
    * @return
    */
   @Override
   public R receiveEditApply(String oids, String btmName) {
      try {
         return groupMdmInterService.receiveEditApply(oids,btmName);
      }catch (Throwable e){
         return R.fail("集团码数据修改失败:"+e.getMessage());
      }
   }
   /*
    * 主数据业务服务
    */
   /**
    * 获取集团集团码,赋值到主数据
    * @param dockingReturnStoreVO
@@ -73,7 +125,7 @@
   public R getApplyGroupCode(DockingReturnStoreVO dockingReturnStoreVO) {
      log.info("获取集团集团码,赋值到主数据 start");
      try {
         List<BaseModel> editObjectList = new ArrayList();
         Map<String,List<BaseModel>> editObjectMap = new HashMap<>();
         List<DockingPreApplyForm> dockingPreApplyFormList = new ArrayList();
         //String classId = javaObject.getClassId();
@@ -129,18 +181,29 @@
            //返回结果信息
            dockingPreApplyForm.setContent(jcontent.toJSONString());
            dockingPreApplyFormList.add(dockingPreApplyForm);
            String jdataid = dockingPreApplyForm.getDataOid();
            String jdatabtmname = dockingPreApplyForm.getDataBtmName();
            if (res) {
               String jdataid = dockingPreApplyForm.getDataOid();
               String jdatabtmname = dockingPreApplyForm.getDataBtmName();
               //此处需要查询业务数据,去更改
               BaseModel baseModel = new BaseModel();
               baseModel.setId(customCoding);
               String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
               if(partCoe.equals(classOid)){
                  baseModel.setId(10+customCoding);
               }
               String btmeName=baseModel.getBtmname();
               baseModel.getData().put("groupcode",customCoding);
               log.info("申请单:"+applyId+",集团码:"+customCoding+"编码:"+baseModel.getId());
               editObjectList.add(baseModel);
               editObjectMap.getOrDefault(btmeName,new ArrayList<>()).add(baseModel);
            }
         }
         if(!CollectionUtils.isEmpty(editObjectMap)) {
            //调用主数据服务批量保存接口
            editObjectMap.forEach((btmName, modeList) -> {
               mdmEngineClient.updateBatchBtypeDatas(btmName, modeList);
            });
         }
         dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
         //调用主数据服务批量保存接口
      }catch (Throwable e){
         e.printStackTrace();
         return R.fail("集团码集成赋值失败"+e);
@@ -227,7 +290,7 @@
    * @param jclassObject
    * @throws Throwable
    */
   private void getVilewMode(DockingClassifyVO jclassObject, List<DockingClassifyViewVO> list)
   private void getVilewMode(@NotNull DockingClassifyVO jclassObject, List<DockingClassifyViewVO> list)
      throws Throwable {
      String nodeLinkName = jclassObject.getNodeLinkName();
      try {