| | |
| | | |
| | | |
| | | import com.alibaba.cloud.commons.lang.StringUtils; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.nacos.shaded.com.google.protobuf.ServiceException; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | |
| | | import com.vci.ubcs.code.enumpack.CodeDefaultLC; |
| | | import com.vci.ubcs.code.enumpack.CodeSecTypeEnum; |
| | | import com.vci.ubcs.code.enumpack.SysIntegrationDataFlowTypeEnum; |
| | | import com.vci.ubcs.code.feign.MdmSearchItemCodeProvider; |
| | | import com.vci.ubcs.code.mapper.CommonsMapper; |
| | | import com.vci.ubcs.code.service.*; |
| | | import com.vci.ubcs.code.util.gennerAttrMapUtil; |
| | |
| | | import com.vci.ubcs.starter.web.util.WebUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.map.CaseInsensitiveMap; |
| | | import org.springblade.core.redis.cache.BladeRedis; |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | |
| | | import java.util.concurrent.atomic.AtomicReference; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_TAKEBACK; |
| | | import static com.vci.ubcs.code.constant.MdmDuckingConstant.*; |
| | | import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; |
| | | import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC; |
| | |
| | | /*** |
| | | * resdis缓存服务 |
| | | */ |
| | | @Resource |
| | | private BladeRedis bladeRedis; |
| | | //@Resource |
| | | //private BladeRedis bladeRedis; |
| | | |
| | | @Resource |
| | | private IDockingSysIntParamService dockingSysIntParamService; |
| | |
| | | @Resource |
| | | private IDockingSysIntHeaderService dockingSysIntHeaderService; |
| | | |
| | | @Autowired(required = false) |
| | | private MdmSearchItemCodeProvider mdmSearchItemCodeProvider; |
| | | //@Autowired(required = false) |
| | | //private MdmSearchItemCodeProvider mdmSearchItemCodeProvider; |
| | | |
| | | @Resource |
| | | private ICodeAllCodeService codeAllCodeService; |
| | |
| | | initProperty("projectitem","",projectItem,propList); |
| | | String materialCode=searchItemDataVO.getMATERIALCODE();//产品编码 |
| | | initProperty("materialcode","",materialCode,propList); |
| | | |
| | | Date cretaeDon = searchItemDataVO.getCREATEDON();//创建日期 日期型,如:2023-09-08 19:24:11 |
| | | initProperty("cretaedon", "", Func.formatDateTime(cretaeDon), propList); |
| | | Date lastchangeDon = searchItemDataVO.getLASTCHANGEDON();//更改时间 日期型,如:2023-09-08 19:24:11 |
| | | initProperty("lastchangedon", "", Func.formatDateTime(lastchangeDon), propList); |
| | | //组合属性的处理 |
| | | initProperty(attrKey,"",StringUtils.isNotBlank(projectItem)?projectItem:mmodelCode,propList); |
| | | String creatBy=searchItemDataVO.getCREATBY();//创建者 |
| | | Date cretaeDon= searchItemDataVO.getCREATEDON();//创建日期 日期型,如:2023-09-08 19:24:11 |
| | | //Date cretaeDon = searchItemDataVO.getCREATEDON();//创建日期 日期型,如:2023-09-08 19:24:11 |
| | | String lastchangeBy=searchItemDataVO.getLASTCHANGEDBY();//更改者 |
| | | Date lastchangeDon=searchItemDataVO.getLASTCHANGEDON();//更改时间 日期型,如:2023-09-08 19:24:11 |
| | | //Date lastchangeDon = searchItemDataVO.getLASTCHANGEDON();//更改时间 日期型,如:2023-09-08 19:24:11 |
| | | String isenabled= searchItemDataVO.getISENABLED();//字符型,枚举值;停用:0;启用:1; |
| | | applyDataVO.setOperate(operation); |
| | | applyDataVO.setCode(code); |
| | |
| | | String classifyoid = dockingTask.getClassifyOid(); |
| | | //查询要推送的数据 |
| | | String btmoid = dockingTask.getBtmOid();//数据btmid |
| | | String code=dockingTask.getId();; |
| | | String code = dockingTask.getId(); |
| | | ; |
| | | //表示是主数据 |
| | | CodeClassifyTemplateVO codeClassifyTemplateVO = mdmEngineServiceI.getUsedTemplateByClassifyOid(classifyoid); |
| | | R<List<Map<String, String>>> r = mdmEngineServiceI.getDataByOid(btmoid, codeClassifyTemplateVO.getOid()); |
| | | |
| | | log.info("推送人员数据,执行到查询主数据和模板属性阶段!!"); |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = codeClassifyTemplateVO.getAttributes(); |
| | | Map<String/**英文名称**/, String/**中文名称**/> attrIdNameMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t.getName(), (o1, o2) -> o2)); |
| | | Map<String, String> data = new HashMap<>(); |
| | |
| | | data = r.getData().get(0); |
| | | } |
| | | List<NodeProDTO> nodeProDTOS = new ArrayList<>(); |
| | | Map<String, String> finalData = data; |
| | | AtomicReference<String> newItemId= new AtomicReference<>(""); |
| | | final Map<String, String> finalData = data; |
| | | List<String> newItemId = new ArrayList<>(); |
| | | finalData.keySet().forEach(field -> { |
| | | if(field.toLowerCase(Locale.ROOT).equals(itemId.toLowerCase(Locale.ROOT))){ |
| | | String Value = finalData.get(field); |
| | | newItemId.set(Value); |
| | | newItemId.add(Value); |
| | | } |
| | | String outName = attrIdNameMap.get(field); |
| | | if (finalData.containsKey(field)) { |
| | |
| | | nodeObjectDTO.setCode(code);//设置编码 |
| | | nodeObjectDTO.setClassCode(classCodeLeves[0]); |
| | | nodeObjectDTO.setStatus(data.get("lcstatus")); |
| | | nodeObjectDTO.setItemid(newItemId.get()); |
| | | nodeObjectDTO.setItemid(newItemId.get(0)); |
| | | nodeObjectDTO.setLibrary(classCodeLeves[classCodeLeves.length - 1]); |
| | | nodeObjectDTO.setPro(nodeProDTOS); |
| | | List<NodeObjectDTO> nodeObjectDTOS = new ArrayList<>(); |
| | |
| | | xStream.autodetectAnnotations(true); |
| | | sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); |
| | | } |
| | | log.info("推送人员数据,执行到调用HR接口了!!"); |
| | | //调用接口 |
| | | callInterface(sendString,dockingSystemConfig, dockingTask,"pushData"); |
| | | }catch (Throwable e){ |
| | |
| | | for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) { |
| | | headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.getHeaderValue()); |
| | | } |
| | | log.info("推送人员数据,执行到调用接口了,地址:" + url); |
| | | backString = HttpUtils.postByMediaType( |
| | | url, |
| | | params, |
| | |
| | | resultNodeObjectDTOS.add(resultNodeObjectDTO); |
| | | }finally { |
| | | boolean isSend = false; |
| | | log.info("推送人员数据,执行到final阶段了"); |
| | | for (ResultNodeObjectDTO resultNodeObjectDTO:resultNodeObjectDTOS){ |
| | | String erroid = resultNodeObjectDTO.getErroid(); |
| | | msg = resultNodeObjectDTO.getMsg(); |
| | |
| | | |
| | | /** |
| | | * dockingdata根据oid修改sendflag |
| | | * |
| | | * @param oid |
| | | * @param sendflag |
| | | * @return |