ludc
2024-04-12 f21bdede8546a348e2b16ffc3bbe292df7eeba76
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -6,14 +6,10 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.ubcs.code.applyjtcodeservice.service.*;
import com.vci.ubcs.code.feign.IMdmEngineClient;
import com.vci.ubcs.code.applyjtcodeservice.entity.*;
import com.vci.ubcs.code.applyjtcodeservice.service.IGroupMdmInterService;
import com.vci.ubcs.code.applyjtcodeservice.vo.*;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.vo.webserviceModel.apply.ApplyDataVO;
import com.vci.ubcs.code.vo.webserviceModel.apply.InterParameterVO;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.code.applyjtcodeservice.feign.MdmApplyGroupCodeProvider;
import com.vci.ubcs.code.applyjtcodeservice.mapper.DockingPreAttrMappingMapper;
@@ -50,7 +46,7 @@
   private String msg="";
   @Value("${docking.apply.partCode:101}")
   public String partCoe;
   public String partCode;
   @Value("${docking.apply.usedFlag:false}")
   public boolean usedFlag;
@@ -61,6 +57,9 @@
   @Value("${docking.apply.sysName:410-MDM}")
   public String dockingApplySysName;
   @Value("${docking.apply.personUserAccount:28201728}")
   public String applyCodeUserAccount;
   @Autowired(required = false)
   private MdmApplyGroupCodeProvider mdmApplyGroupCodeProvider;
@@ -68,36 +67,37 @@
    * 集团分类服务
    */
   @Autowired(required = false)
   private com.vci.ubcs.code.applyjtcodeservice.service.IDockingPreClassifyService dockingPreClassifyService;
   private IDockingPreClassifyService dockingPreClassifyService;
   /***
    * 申请单服务
    */
   @Autowired(required = false)
   private com.vci.ubcs.code.applyjtcodeservice.service.IDockingPreApplyFormService dockingPreApplyFormService;
   private IDockingPreApplyFormService dockingPreApplyFormService;
   /***
    * 模型视图单服务
    */
   @Autowired(required = false)
   private com.vci.ubcs.code.applyjtcodeservice.service.IDockingPreViewModelService dockingPreViewModelService;
   private IDockingPreViewModelService dockingPreViewModelService;
   /***
    * 集团分类属性属性映射配置服务
    */
   @Autowired(required = false)
   private DockingPreAttrMappingMapper dockingPreAttrMappingMapper;
   /***
    * 属性取值范围服务
    */
   @Autowired(required = false)
   private com.vci.ubcs.code.applyjtcodeservice.service.IDockingPreAttrRangeService dockingPreAttrRangeService;
   private IDockingPreAttrRangeService dockingPreAttrRangeService;
   /***
    * 集团属性服务
    */
   @Autowired(required = false)
   private com.vci.ubcs.code.applyjtcodeservice.service.IDockingPreMetaAttrService dockingPreMetaAttrService;
   private IDockingPreMetaAttrService dockingPreMetaAttrService;
   @Autowired(required = false)
   private IMdmEngineClient mdmEngineClient;
@@ -109,8 +109,8 @@
    * @return 返回结果信息
    * @throws Exception
    */
   @Transactional(rollbackFor = VciBaseException.class)
   @Override
   @Transactional(rollbackFor = Exception.class)
   public R applyGroupCode(String oids, String btmName) throws VciBaseException {
      if(usedFlag) {
         try {
@@ -144,7 +144,8 @@
               code = resultDataObject.getCode();
               msg = resultDataObject.getMsg();
               boolean res=false;
               if ("1".equals(resultDataObject.getCode())) {//结果正确的情况
               if ("1".equals(code)) {
                  //结果正确的情况
                  List<DockingDataVO> dataObjectVOList = resultDataObject.getData();
                  res=true;
                  dataObjectVOList.stream().forEach(dataObject -> {
@@ -164,7 +165,7 @@
                     if (editDockingPreApplyFormMap.containsKey(applyId)) {
                        DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
                        dockingPreApplyForm.setCode(code2);
                        //dockingPreApplyForm.setDescription(baseModel.getId());
                        dockingPreApplyForm.setDescription(baseModel.getId());
                        dockingPreApplyForm.setMsg("申请:" + msg);
                        if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) {
                           dockingPreApplyForm.setGroupCode(customCoding);
@@ -181,7 +182,11 @@
                           dockingPreApplyForm.setContent(writeValueAsString);
                        } catch (JsonProcessingException e) {
                        }
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                        Date date = new Date();
                        baseModel.setLastModifyTime(date);
                        baseModel.setTs(date);
                        baseModel.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                        //DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                     }
                     //新增的申请单数据
                     if (addDockingPreApplyFormMap.containsKey(applyId)) {
@@ -197,7 +202,14 @@
                           dockingPreApplyForm.setContent(writeValueAsString);
                        } catch (JsonProcessingException e) {
                        }
                        DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                        Date date = new Date();
                        dockingPreApplyForm.setCreateTime(date);
                        dockingPreApplyForm.setLastModifyTime(date);
                        dockingPreApplyForm.setTs(date);
                        dockingPreApplyForm.setBtmname(MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                        dockingPreApplyForm.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                        dockingPreApplyForm.setCreator(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                        // DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                     }
                     //如果有集团码则更新数据
                     if (isEditDatas) {
@@ -205,13 +217,16 @@
                           baseModel = baseModelMap.get(applyId);
                           Map<String,String> dataValueMap=new CaseInsensitiveMap<>(baseModel.getData());
                           /*String classOid=baseModel.getId();
                           if(partCoe.equals(classOid)){
                           if(partCode.equals(classOid)){
                              baseModel.setId(10+customCoding);
                              customCoding=10+customCoding;
                           }*/
                           BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
                           DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                        //   DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                           Date date = new Date();
                           baseModel.setLastModifyTime(date);
                           baseModel.setTs(date);
                           baseModel.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                           //DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                           baseModel.getData().put("GROUPCODE",customCoding);
                           updateCbos.add(baseModel);//更新数据集团code
                        }
@@ -224,14 +239,25 @@
                     dockingPreApplyForm.setMsg("申请:" + msg);
                     dockingPreApplyForm.setContent("");
                     dockingPreApplyForm.setGroupCode("");
                     DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                     Date date = new Date();
                     dockingPreApplyForm.setLastModifyTime(date);
                     dockingPreApplyForm.setTs(date);
                     dockingPreApplyForm.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                     //DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                  });
                  addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                     dockingPreApplyForm.setCode("2");
                     dockingPreApplyForm.setMsg("申请:" + msg);
                     dockingPreApplyForm.setContent("");
                     dockingPreApplyForm.setGroupCode("");
                     DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                     Date date = new Date();
                     dockingPreApplyForm.setCreateTime(date);
                     dockingPreApplyForm.setLastModifyTime(date);
                     dockingPreApplyForm.setTs(date);
                     dockingPreApplyForm.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                     dockingPreApplyForm.setCreator(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                     dockingPreApplyForm.setBtmname(MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                     //DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                  });
               }
               if (editDockingPreApplyFormMap.size() > 0) {
@@ -263,8 +289,8 @@
    * @return 返回结果信息
    * @throws Throwable
    */
   @Transactional(rollbackFor = VciBaseException.class)
   @Override
   @Transactional(rollbackFor = Exception.class)
   public R receiveEditApply(String oids, String btmName) throws VciBaseException {
      if(!usedFlag) {
         log.info("更新接口功能已关闭!->"+usedFlag);
@@ -322,7 +348,11 @@
                        dockingPreApplyForm.setContent(writeValueAsString);
                     } catch (JsonProcessingException e) {
                     }
                     DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                     Date date = new Date();
                     dockingPreApplyForm.setLastModifyTime(date);
                     dockingPreApplyForm.setTs(date);
                     dockingPreApplyForm.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                     //DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                  }
                  //新增的申请单数据
                  if (addDockingPreApplyFormMap.containsKey(applyId)) {
@@ -339,7 +369,14 @@
                        dockingPreApplyForm.setContent(writeValueAsString);
                     } catch (JsonProcessingException e) {
                     }
                     DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                     Date date = new Date();
                     dockingPreApplyForm.setCreateTime(date);
                     dockingPreApplyForm.setLastModifyTime(date);
                     dockingPreApplyForm.setTs(date);
                     dockingPreApplyForm.setBtmname(MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                     dockingPreApplyForm.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                     dockingPreApplyForm.setCreator(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                     //DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                  }
                  //如果有集团码则更新数据
                  if (isEditDatas) {
@@ -347,9 +384,13 @@
                        BaseModel baseModel = baseModelMap.get(applyId);
                        //BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel);
                        /*String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
                        if(partCoe.equals(classOid)){
                        if(partCode.equals(classOid)){
                           baseModel.setId(10+customCoding);
                        }*/
                        Date date = new Date();
                        baseModel.setLastModifyTime(date);
                        baseModel.setTs(date);
                        baseModel.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                        //   baseModel.setId(customCoding);
                        baseModel.getData().put("GROUPCODE", customCoding);
@@ -363,14 +404,25 @@
                  dockingPreApplyForm.setMsg("修改:" + msg);
                  dockingPreApplyForm.setContent("");
                  dockingPreApplyForm.setGroupCode("");
                  DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                  Date date = new Date();
                  dockingPreApplyForm.setLastModifyTime(date);
                  dockingPreApplyForm.setTs(date);
                  dockingPreApplyForm.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                  //DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
               });
               addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                  dockingPreApplyForm.setCode("2");
                  dockingPreApplyForm.setMsg("修改:" + msg);
                  dockingPreApplyForm.setContent("");
                  dockingPreApplyForm.setGroupCode("");
                  DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                  Date date = new Date();
                  dockingPreApplyForm.setCreateTime(date);
                  dockingPreApplyForm.setLastModifyTime(date);
                  dockingPreApplyForm.setTs(date);
                  dockingPreApplyForm.setBtmname(MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                  dockingPreApplyForm.setLastModifier(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                  dockingPreApplyForm.setCreator(Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount());
                  //DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
               });
            }
            if (editDockingPreApplyFormMap.size() > 0) {
@@ -558,6 +610,11 @@
         dockingModelQueryVO.setSysName(dockingApplySysName);
         DockingApplyFormQueryStatusVO dockingApplyFormQueryStatusVO = mdmApplyGroupCodeProvider.queryApplyState(dockingModelQueryVO);
         if(Func.isEmpty(dockingApplyFormQueryStatusVO)){
            log.error("获取申请单为空!");
            return R.fail("没有获取到相关数据信息!");
         }
         int code=dockingApplyFormQueryStatusVO.getCode();
         String mesg=dockingApplyFormQueryStatusVO.getMsg();
         if(code==1){
@@ -591,7 +648,7 @@
         e.printStackTrace();
         //message=""+e;
         log.error("获取申请单状态失败"+e);
         throw  new VciBaseException(e.getMessage());
         throw new VciBaseException(e.getMessage());
      }
      log.info("查询申请单状态接口end");
      return R.success(message);
@@ -861,10 +918,18 @@
   /**
    * 组织数据
    * */
   private DockingGroupDataVO queryApplycodeDataObjects(int optationtype,List<BaseModel>  codeWupins,Map<String,DockingPreApplyForm>   addDockingPreApplyFormMap,Map<String,DockingPreApplyForm>  editDockingPreApplyFormMap,Map<String,BaseModel>  codeWupinMap) throws VciBaseException{
    * @param optationtype
    * @param codeWupins
    * @param addDockingPreApplyFormMap
    * @param editDockingPreApplyFormMap
    * @param codeWupinMap
    * @return
    * @throws VciBaseException
    */
   private DockingGroupDataVO queryApplycodeDataObjects(int optationtype,List<BaseModel>  codeWupins,Map<String,DockingPreApplyForm> addDockingPreApplyFormMap,Map<String,DockingPreApplyForm>  editDockingPreApplyFormMap,Map<String,BaseModel>  codeWupinMap) throws VciBaseException{
      try {
         String curUserName =AuthUtil.getUser().getUserName();
         // TODO:主数据推送过来的数据是拿不到可以申请集团码的用户信息的,并且这一块儿的逻辑也还没敲定,所以这儿采用配置的用户来申请集团码
         String curUserName = Func.isBlank(AuthUtil.getUserAccount()) ? applyCodeUserAccount:AuthUtil.getUserAccount();
         //申请的数据
         List<DockingMainData> mainDataList=new ArrayList<DockingMainData>();
         for (BaseModel dataBusinessObject : codeWupins) {
@@ -876,29 +941,29 @@
            String oid = dataBusinessObject.getOid();
            DockingPreApplyForm dockingPreApplyForm = new DockingPreApplyForm();
            String dataOid = dataBusinessObject.getOid();
            Map<String, String> conditionsMap = new HashMap<String, String>();
            //List<DockingPreApplyForm> applyFormObjects = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().eq(DockingPreApplyForm::getDataOid, dataOid).eq(DockingPreApplyForm::getOperationType, optationtype));
         //   DockingPreApplyForm dockingPreApplyForm=new DockingPreApplyForm();
            String apllyCode = "";
            // String dataOid = dataBusinessObject.getOid();
            // Map<String, String> conditionsMap = new HashMap<String, String>();
            // List<DockingPreApplyForm> applyFormObjects = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().eq(DockingPreApplyForm::getDataOid, dataOid).eq(DockingPreApplyForm::getOperationType, optationtype));
            // DockingPreApplyForm dockingPreApplyForm=new DockingPreApplyForm();
            String applyCode = "";
            /*if (!CollectionUtils.isEmpty(applyFormObjects)) {
               dockingPreApplyForm = applyFormObjects.get(0);
               apllyCode = dockingPreApplyForm.getId();
               editDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//申请单和申请单对象关系
               applyCode = dockingPreApplyForm.getId();
               editDockingPreApplyFormMap.put(applyCode, dockingPreApplyForm);//申请单和申请单对象关系
            } else {*/
               apllyCode = dockingApplyUnitCode + "-" + format;
               dockingPreApplyForm.setId(apllyCode);
               applyCode = dockingApplyUnitCode + "-" + format;
               dockingPreApplyForm.setId(applyCode);
               dockingPreApplyForm.setName("");
               dockingPreApplyForm.setOperationType(optationtype+"");
               dockingPreApplyForm.setDescription(dataBusinessObject.getId());//获取数据描述信息
               dockingPreApplyForm.setDataOid(oid);
               dockingPreApplyForm.setDataBtmName(btmName);
               addDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//申请单和申请单对象关系
         //   }
               addDockingPreApplyFormMap.put(applyCode, dockingPreApplyForm);//申请单和申请单对象关系
            //   }
            codeWupinMap.put(apllyCode, dataBusinessObject);//申请单和对应数据关系
            conditionsMap = new HashMap<String, String>();
            conditionsMap.put("jtargetclsfid", codeclsfid);//视图oid
            codeWupinMap.put(applyCode, dataBusinessObject);//申请单和对应数据关系
            // conditionsMap = new HashMap<String, String>();
            // conditionsMap.put("jtargetclsfid", codeclsfid);//视图oid
            List<DockingPreAttrMapping> dockingPreAttrMappingList = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, codeclsfid));
            if (CollectionUtils.isEmpty(dockingPreAttrMappingList)) {
@@ -909,7 +974,7 @@
            DockingPreClassify dockingPreClassify = dockingPreClassifyService.getById(jsourceclsfid);
            DockingMainData mainData = new DockingMainData();
            mainData.setApplyEntId(dockingApplyUnitCode);//申请单位代码
            mainData.setApplyId(apllyCode);//申请单号
            mainData.setApplyId(applyCode);//申请单号
            mainData.setClassName(dockingPreClassify.getNodeLinkName());//分类名称
            mainData.setCreateBy(curUserName);//
            if(optationtype==2) {
@@ -928,7 +993,7 @@
         return postParameters;
      } catch (Throwable e) {
         // TODO Auto-generated catch block
         throw new VciBaseException("查询数据出错"+e);
         throw new VciBaseException("查询数据出错,原因:"+e.getMessage());
      }
   }
@@ -1035,14 +1100,15 @@
      if(attrRangeMap.containsKey(jmetalistoid)) {
         return;
      }
      Map<String,String>conditionsMap=new HashMap<String, String>();
      conditionsMap.put("jmetalistid", jmetalistoid);//视图oid
      // Map<String,String>conditionsMap=new HashMap<String, String>();
      // conditionsMap.put("jmetalistid", jmetalistoid);//视图oid
      List<DockingPreAttrRange> dockingPreAttrRangeList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda().eq(DockingPreAttrRange::getMetaListId, jmetalistoid));
      if (CollectionUtils.isEmpty(dockingPreAttrRangeList)) {
         return;
      }
      Map<String, DockingPreAttrRange> rangeMap = new HashMap<String, DockingPreAttrRange>();
      rangeMap = dockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getNumTextValue(), t -> t, (o1, o2) -> o2));
      // TODO: 这儿存内部存储值,无法在后续进行转换
      rangeMap = dockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getTargetNumText(), t -> t, (o1, o2) -> o2));
      attrRangeMap.put(jmetalistoid, rangeMap);
   }