Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/vo/DockingMainData.java
@@ -28,6 +28,10 @@ */ private String className; /*** * éå¢ç */ private String customCoding; /*** * 模åè§å¾ä¿¡æ¯ */ private List<DockingViewVO> viewInfos; @@ -41,6 +45,7 @@ ", createBy='" + createBy + '\'' + ", className='" + className + '\'' + ", viewInfos=" + viewInfos + ", customCoding=" + customCoding + '}'; } } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/MdmSearchItemCodeProvider.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.vci.ubcs.code.feign; import com.vci.ubcs.code.vo.pagemodel.SearchItemParam; import com.vci.ubcs.code.vo.pagemodel.SearchItemVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import javax.validation.constraints.NotNull; /**** * ä»å¤é¨è·ååå·ä»£å·ï¼æè 项ç®ä»£å· * @author xiejun * @date 2023-05-26 */ @FeignClient(name = "erpIntegration", url = "${erp.item.url:http://127.0.0.1:8080}", path = "") public interface MdmSearchItemCodeProvider { /*** * æ¥è¯¢é¡¹ç®ä»£å·æè åå·ä»£å· * @param searchItemParam * @return æ§è¡ç»æ */ @PostMapping("/api/pp/pp/ext/extend/v1.0/getppModelByElem") SearchItemVO getppModelByElem(@NotNull @RequestBody SearchItemParam searchItemParam); } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SearchItemDataVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ package com.vci.ubcs.code.vo.pagemodel; import lombok.Data; import java.util.Date; @Data public class SearchItemDataVO { /*** * æ°æ®ç¶æ å符åï¼æä¸¾å¼ï¼å¶åï¼0ï¼å®¡æ¹ä¸ï¼1ï¼éè¿ï¼2ï¼é©³åï¼3ï¼ */ private String status; /** * å¶é åå·ä»£å· */ private String mmodelcode; /** * 项ç®ä»£å· */ private String projectitem; /*** * 项ç®ç¼ç */ private String projectcode; /*** * 产åç¼ç */ private String materialcode; /*** * å建è */ private String creatby; /*** * åå»ºæ¥æ æ¥æåï¼å¦ï¼2023-09-08 19:24:11 */ private Date createdon; /*** * æ´æ¹è */ private String lastchangedby; /*** * æ´æ¹æ¶é´ æ¥æåï¼å¦ï¼2023-09-08 19:24:11 */ private Date lastchangedon; /*** * å符åï¼æä¸¾å¼ï¼åç¨ï¼0ï¼å¯ç¨ï¼1ï¼ */ private String isenabled; } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SearchItemParam.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.vci.ubcs.code.vo.pagemodel; import lombok.Data; import java.util.Date; @Data public class SearchItemParam { /*** * è°ç¨ç³»ç»æ è¯ */ private String systag; /** * æ°æ®ç¶æ */ private String status; /** * æ¯å¦åç¨ */ private String isenabled; /** * æåä¿®æ¹æ¥æ */ private Date lastchangedon; } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SearchItemVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.vci.ubcs.code.vo.pagemodel; import lombok.Data; import java.util.List; @Data public class SearchItemVO { /*** * è¿åæ è¯ */ private String code; /*** * æ¶æ¯ä¿¡æ¯ */ private String msg; private List<SearchItemDataVO> data; } Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -1,5 +1,6 @@ package com.vci.ubcs.code.applyjtcodeservice.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -10,6 +11,8 @@ 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; @@ -19,8 +22,10 @@ import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.map.CaseInsensitiveMap; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -43,11 +48,11 @@ private String code=""; private String msg=""; @Value("${docking.apply.partCoe:10}") @Value("${docking.apply.partCode:101}") public String partCoe; @Value("${docking.apply.userFlag:false}") @Value("${docking.apply.usedFlag:false}") public boolean usedFlag; @Value("${docking.apply.unitCode:41000}") @Value("${docking.apply.unitCode:4100}") public String dockingApplyUnitCode; @Value("${docking.apply.sysName:410-MDM}") @@ -119,18 +124,33 @@ Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>(); Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>(); Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>(); //æ°æ®åºä¸åå¨ç /*List<BaseModel> newDdataModelList = dataModelList.stream().filter(cbo -> { String groupcode =cbo.getData().getOrDefault("GROUPCODE",""); return StringUtils.isBlank(groupcode); }).collect(Collectors.toList()); if(newDdataModelList.size()==0) return R.fail("ç³è¯·æ¥å£è°ç¨æå,æææ°æ®å·²ç»åå¨éå¢ç ");*/ //ç»ç»æ°æ® dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap); DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO); Object object = JSONObject.toJSON(dockingGroupDataVO); String resultStr = object.toString(); log.info("ç³è¯·éå¢ç æ°æ®æ ¼å¼:->"+resultStr); DockingResultVO resultDataObject =new DockingResultVO(); resultDataObject= mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO); code = resultDataObject.getCode(); msg = resultDataObject.getMsg(); boolean res=false; if ("1".equals(resultDataObject.getCode())) {//ç»ææ£ç¡®çæ åµ List<DockingDataVO> dataObjectVOList = resultDataObject.getData(); res=true; dataObjectVOList.stream().forEach(dataObject -> { boolean isEditDatas = false; String code2 = dataObject.getCode(); DockingMainDataVO data2 = dataObject.getData(); String applyId = data2.getApplyId();//ç³è¯·åid BaseModel baseModel = baseModelMap.get(applyId); String customCoding = StringUtils.isBlank(data2.getCustomCoding()) ? "" : data2.getCustomCoding();//éå¢ç 段 msg = dataObject.getMsg(); if (code2.equals("1")) {//ç»ææ£ç¡®çæ åµ @@ -142,8 +162,16 @@ if (editDockingPreApplyFormMap.containsKey(applyId)) { DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId); dockingPreApplyForm.setCode(code2); //dockingPreApplyForm.setDescription(baseModel.getId()); dockingPreApplyForm.setMsg("ç³è¯·ï¼" + msg); if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) { dockingPreApplyForm.setGroupCode(customCoding); }else{ isEditDatas = true; if (StringUtils.isBlank(customCoding)) { customCoding=dockingPreApplyForm.getGroupCode(); } } ObjectMapper mp = new ObjectMapper(); String writeValueAsString = null; try { @@ -151,11 +179,13 @@ dockingPreApplyForm.setContent(writeValueAsString); } catch (JsonProcessingException e) { } DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm); } //æ°å¢çç³è¯·åæ°æ® if (addDockingPreApplyFormMap.containsKey(applyId)) { DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId); dockingPreApplyForm.setCode(code2); dockingPreApplyForm.setDescription(baseModel.getId()); dockingPreApplyForm.setMsg("ç³è¯·ï¼" + msg); dockingPreApplyForm.setGroupCode(customCoding); ObjectMapper mp = new ObjectMapper(); @@ -165,25 +195,28 @@ dockingPreApplyForm.setContent(writeValueAsString); } catch (JsonProcessingException e) { } DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM); } //妿æéå¢ç åæ´æ°æ°æ® if (isEditDatas) { if (baseModelMap.containsKey(applyId)) { BaseModel baseModel = baseModelMap.get(applyId); String classOid=baseModel.getData().getOrDefault("CODECLSFID",""); baseModel = baseModelMap.get(applyId); Map<String,String> dataValueMap=new CaseInsensitiveMap<>(baseModel.getData()); String classOid=dataValueMap.getOrDefault("CODECLSFID",""); if(partCoe.equals(classOid)){ baseModel.setId(10+customCoding); customCoding=10+customCoding; } BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel); DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); baseModel.getData().getOrDefault("groupCode", customCoding); // DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); baseModel.getData().put("GROUPCODE",customCoding); updateCbos.add(baseModel);//æ´æ°æ°æ®éå¢code } } }); } else { res=false; editDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> { dockingPreApplyForm.setCode("2"); dockingPreApplyForm.setMsg("ç³è¯·ï¼" + msg); @@ -208,6 +241,9 @@ //ä¿åè¡¨åæ°æ® dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings); mdmEngineClient.updateBatchBtypeDatas(btmName, updateCbos);//ä¿åæ°æ® if(!res){ throw new VciBaseException(msg); } } return R.success("ç³è¯·æ¥å£è°ç¨æå"); } catch (VciBaseException e) { @@ -227,7 +263,7 @@ @Transactional(rollbackFor = VciBaseException.class) @Override public R receiveEditApply(String oids, String btmName) throws VciBaseException { if(usedFlag) { if(!usedFlag) { log.info("æ´æ°æ¥å£åè½å·²å ³éï¼->"+usedFlag); R.success("æ´æ°æ¥å£åè½å·²å ³éï¼"); } @@ -273,7 +309,9 @@ DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId); dockingPreApplyForm.setCode(code2); dockingPreApplyForm.setMsg("ä¿®æ¹ï¼" + msg); if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) { dockingPreApplyForm.setGroupCode(customCoding); } ObjectMapper mp = new ObjectMapper(); String writeValueAsString = null; try { @@ -281,13 +319,16 @@ dockingPreApplyForm.setContent(writeValueAsString); } catch (JsonProcessingException e) { } DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm); } //æ°å¢çç³è¯·åæ°æ® if (addDockingPreApplyFormMap.containsKey(applyId)) { DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId); dockingPreApplyForm.setCode(code2); dockingPreApplyForm.setMsg("ä¿®æ¹ï¼" + msg); if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) { dockingPreApplyForm.setGroupCode(customCoding); } ObjectMapper mp = new ObjectMapper(); String writeValueAsString = null; try { @@ -295,6 +336,7 @@ dockingPreApplyForm.setContent(writeValueAsString); } catch (JsonProcessingException e) { } DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM); } //妿æéå¢ç åæ´æ°æ°æ® if (isEditDatas) { @@ -307,7 +349,7 @@ } DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); // baseModel.setId(customCoding); baseModel.getData().put("groupCode", customCoding); baseModel.getData().put("GROUPCODE", customCoding); updateCbos.add(baseModel);//æ´æ°æ°æ®éå¢code } } @@ -354,7 +396,7 @@ public R queryClassModel(String groupClassifyId) throws Throwable { log.info("è·åé墿¨¡å详ç»ä¿¡æ¯æ§è¡ä¿åstart"); String message="æ§è¡æåï¼"; if(usedFlag){ if(!usedFlag){ log.info("è·åé墿¨¡å详ç»ä¿¡æ¯æ§è¡ä¿ååè½å·²å ³éï¼->"+usedFlag); return R.fail("è·åé墿¨¡å详ç»ä¿¡æ¯æ¥å£å·²å ³é!"); } @@ -406,7 +448,7 @@ public R queryMdmModel() throws Throwable { String message="æ§è¡æåï¼"; log.info("ä»éå¢è·å主模åä¿¡æ¯æ§è¡ä¿åæ¥å£statr"); if(usedFlag){ if(!usedFlag){ log.info("ä»éå¢è·å主模åä¿¡æ¯æ§è¡ä¿åæ¥å£åè½å·²å ³éï¼->"+usedFlag); return R.fail("æ¥è¯¢æ¨¡åè§å¾æ¥å£å·²å ³é!"); } @@ -493,7 +535,7 @@ */ @Override public R queryApplyState(String dataOids) throws VciBaseException { if(usedFlag){ if(!usedFlag){ log.info("æ¥è¯¢ç³è¯·åç¶ææ¥å£å¼å ³å·²å ³é"); return R.fail("æ¥è¯¢ç³è¯·åç¶ææ¥å£å¼å ³å·²å ³é"); } @@ -518,8 +560,9 @@ int code=dockingApplyFormQueryStatusVO.getCode(); String mesg=dockingApplyFormQueryStatusVO.getMsg(); if(code==1){ message=mesg; List<DockingApplyFormStatusVO> dockingApplyFormStatusVOList=dockingApplyFormQueryStatusVO.getData(); if(CollectionUtils.isEmpty(dockingApplyFormStatusVOList)){ if(!CollectionUtils.isEmpty(dockingApplyFormStatusVOList)){ for (DockingApplyFormStatusVO applyFormDataState : dockingApplyFormStatusVOList) { String applyId=applyFormDataState.getApplyNum(); String state= applyFormDataState.getFormState(); @@ -531,20 +574,23 @@ } } boolean res=this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList); if(res){ R.success("ç³è¯·éå¢ç ç¶ææ¥è¯¢æå:"+mesg); } }else{ throw new Throwable("没æè·åå°ç¸å ³æ°æ®ä¿¡æ¯"); } }else{ throw new Throwable(mesg); message=mesg; dockingPreApplyFormList.stream().forEach(dockingPreApplyForm -> { dockingPreApplyForm.setMsg("ç³è¯·åæ¥ç失败ï¼"+mesg); }); this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList); throw new Throwable(message); } }catch (Throwable e){ e.printStackTrace(); //message=""+e; log.error("è·åç³è¯·åç¶æå¤±è´¥"+e); throw new VciBaseException(message); throw new VciBaseException(e.getMessage()); } log.info("æ¥è¯¢ç³è¯·åç¶ææ¥å£end"); return R.success(message); @@ -559,7 +605,7 @@ */ @Override public R syncClassifyModel(String classifyId, String operationType) throws VciBaseException { if(usedFlag){ if(!usedFlag){ log.info("忥é墿¨¡åä¿¡æ¯å¼å ³å·²å ³é"); return R.fail("忥é墿¨¡åä¿¡æ¯å¼å ³å·²å ³é"); } @@ -608,6 +654,7 @@ log.info("classify:-------------->龿¥åç§°:"+nodeLinkName); if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) { dockingPreClassify=new DockingPreClassify(); DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY); } else { DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify); @@ -703,7 +750,7 @@ .eq(DockingPreMetaAttr::getSourceClassifyId,jclassId).eq(DockingPreMetaAttr::getViewModelId,jviewModelObject.getOid()) .eq(DockingPreMetaAttr:: getPid,pid)); Map<String,DockingPreMetaAttr> jmetaattrMap = dockingPreMetaAttrList.stream().filter( s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName().toLowerCase(Locale.ROOT), t -> t)); s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName(), t -> t)); for (DockingClassifyMetaAttrVO dockingClassifyMetaAttrVO : metaList) { String chineseName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getChineseName())?"":dockingClassifyMetaAttrVO.getChineseName();// 屿§åç§° @@ -772,6 +819,7 @@ */ private void getRange(DockingPreMetaAttr metaAttrObject,Map<String, String> range) throws Throwable { String metaAttrOid = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getOid())?"":metaAttrObject.getOid();// 屿§çoid String jchinesename = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getChineseName())?"":metaAttrObject.getChineseName(); Map<String, DockingPreAttrRange> rangeMap = new HashMap<>(); try { @@ -779,7 +827,9 @@ condtionMa.put("jmetalistid", metaAttrOid); List<DockingPreAttrRange> jmetaattrList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda() .eq(DockingPreAttrRange::getMetaListId,metaAttrOid));// æ ¹æ®åç±»æ¥è¯¢æ¨¡åè§å¾å¯¹è±¡ rangeMap= jmetaattrList.stream().collect(Collectors.toMap(s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getNumText().toLowerCase(Locale.ROOT))?"":s.getNumText().toLowerCase(Locale.ROOT), t -> t)); log.info("è·å屿§ç¾å§ 屿§id------->"+metaAttrOid); //rangeMap= jmetaattrList.stream().collect(Collectors.toMap(s ->StringUtils.isNotBlank(s.getNumText())?"":s.getNumText(), t -> t)); rangeMap=jmetaattrList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getNumText())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getNumText(), t -> t)); for (String rangeKey : range.keySet()) { DockingPreAttrRange rangeObject = new DockingPreAttrRange(); @@ -809,43 +859,42 @@ } } /** * ç»ç»æ°æ® * */ 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(); String curUserName ="28201728"; //AuthUtil.getUser().getUserName(); //ç³è¯·çæ°æ® List<DockingMainData> mainDataList=new ArrayList<DockingMainData>(); for (BaseModel dataBusinessObject : codeWupins) { String format = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid",""); //String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid".toUpperCase(Locale.ROOT),""); Map<String,String> dataMap=new CaseInsensitiveMap<>(dataBusinessObject.getData()); String codeclsfid=dataMap.getOrDefault("codeclsfid",""); String btmName = dataBusinessObject.getBtmname(); 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)); //List<DockingPreApplyForm> applyFormObjects = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().eq(DockingPreApplyForm::getDataOid, dataOid).eq(DockingPreApplyForm::getOperationType, optationtype)); // DockingPreApplyForm dockingPreApplyForm=new DockingPreApplyForm(); String apllyCode = ""; if (!CollectionUtils.isEmpty(applyFormObjects)) { /*if (!CollectionUtils.isEmpty(applyFormObjects)) { dockingPreApplyForm = applyFormObjects.get(0); apllyCode = dockingPreApplyForm.getId(); editDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//ç³è¯·ååç³è¯·åå¯¹è±¡å ³ç³» } else { } else {*/ apllyCode = dockingApplyUnitCode + "-" + format; dockingPreApplyForm.setId(apllyCode); dockingPreApplyForm.setName(""); dockingPreApplyForm.setOperationType(optationtype+""); dockingPreApplyForm.setDescription(dataBusinessObject.getDescription());//è·åæ°æ®æè¿°ä¿¡æ¯ dockingPreApplyForm.setDescription(dataBusinessObject.getId());//è·åæ°æ®æè¿°ä¿¡æ¯ dockingPreApplyForm.setDataOid(oid); dockingPreApplyForm.setDataBtmName(btmName); addDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//ç³è¯·ååç³è¯·åå¯¹è±¡å ³ç³» } // } codeWupinMap.put(apllyCode, dataBusinessObject);//ç³è¯·ååå¯¹åºæ°æ®å ³ç³» conditionsMap = new HashMap<String, String>(); @@ -863,6 +912,11 @@ mainData.setApplyId(apllyCode);//ç³è¯·åå· mainData.setClassName(dockingPreClassify.getNodeLinkName());//åç±»åç§° mainData.setCreateBy(curUserName);// if(optationtype==2) { String groucode=dataBusinessObject.getData().getOrDefault("GROUPCODE",""); dockingPreApplyForm.setGroupCode(groucode); mainData.setCustomCoding(groucode); } mainData.setSecretLevel("å é¨");//å¯çº§ï¼é»è®¤ä¸ºå é¨ mainData.setViewInfos(getviewInfos(optationtype,dockingPreClassify, dataBusinessObject));//è·åè§å¾æ¨¡å mainDataList.add(mainData); @@ -917,7 +971,7 @@ //æé 模åè§å¾æ°æ® List<Map<String, Object>> viewValueList=new ArrayList<Map<String,Object>>(); String oid = dockingPreViewModel.getOid(); Map<String,String> dataValueMap=dataBusinessObject.getData(); Map<String,String> dataValueMap=new CaseInsensitiveMap<>(dataBusinessObject.getData()); String codeClassifyId=dataValueMap.get("codeclsfid"); Map<String,String>conditionsMap=new HashMap<String, String>(); List<DockingPreAttrMapping> dockingPreAttrMappingList = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda() @@ -944,7 +998,16 @@ Object newVaue=null; if(StringUtils.isNotBlank(jtargetattrkey)){ getAttrRange(dockingPreMetaAttr);//è·ååæ®µåå¼èå´ String value=dataValueMap.get(jtargetattrkey)==null?"":dataValueMap.getOrDefault(jtargetattrkey,""); String value=""; if(jtargetattrkey.toLowerCase(Locale.ROOT).equals("name")){ value=dataBusinessObject.getName(); }else if(jtargetattrkey.toLowerCase(Locale.ROOT).equals("id")){ value=dataBusinessObject.getId(); }else if(jtargetattrkey.toLowerCase(Locale.ROOT).equals("description")){ value=dataBusinessObject.getDescription(); }else{ value=dataValueMap.get(jtargetattrkey)==null?"":dataValueMap.getOrDefault(jtargetattrkey,""); } newVaue = getVaue(dockingPreMetaAttr, value); }else{ newVaue = getVaue(dockingPreMetaAttr, ""); @@ -952,6 +1015,7 @@ if(newVaue==null||"".equals(newVaue)){ newVaue= dockingPreMetaAttr.getDefaultValue(); } //newVaue= Func.isNotEmpty(newVaue)?newVaue:""; viewValueMap.put(jenglishname, newVaue); } } @@ -1017,7 +1081,7 @@ return null; }else { try { return simpleDateFormat.parse(value); return simpleDateFormat.format(simpleDateFormat.parse(value)); } catch (ParseException e) { throw new VciBaseException("date", new String[]{"æ¥ææ ¼å¼è½¬æ¢é误"}); } @@ -1028,7 +1092,7 @@ return null; }else{ try { return simpleDateFormat.parse(value); return simpleDateFormat.format(simpleDateFormat.parse(value)); } catch (ParseException e) { throw new VciBaseException("date", new String[]{"æ¥ææ ¼å¼è½¬æ¢é误"}); } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/SearchDataSyncForERPScheduling.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ package com.vci.ubcs.code.Scheduling; import com.vci.ubcs.code.service.ICodeDuckingSyncService; import com.vci.ubcs.code.service.UniversalInterfaceI; import com.vci.ubcs.starter.web.enumpck.BooleanEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Date; /*** * éæä»»å¡å®æ¶å¨ * ä»ERPæ¥è¯¢åå·ä»£å·,项ç®ä»£å· * @author xj * @date 2024-01-19 */ @Component @Slf4j public class SearchDataSyncForERPScheduling { @Resource private ICodeDuckingSyncService codeDuckingSyncServiceI; @Value("${erp.item.isStart:false}") public boolean ERP_ITEM_ISSTARE; @Value("${erp.item.btmName:XHDH}") public String ERP_ITEM_BTMNAME; /** * æ¯å¦åå§åå®æäº */ public static volatile String FINISH_INIT = "false"; /** * å¨åå§åå®æåæ§è¡ */ @PostConstruct() public void onInit(){ FINISH_INIT = "true"; } //é»è®¤æ¯ååéæ§è¡æ¹æ³ @Scheduled(cron = "${dataSyncPush.cronTime:0 0/10 * * * ?}") public void scheduled() { log.info("æ§è¡ä»ERP项ç®ä»£å·/åå·ä»£å·æ°æ® start:"); log.info("æ§è¡ä¸»æ°æ®éææ°æ®æ¨é end: "+ "å¼å ³æ¯å¦å¼å¯:" +ERP_ITEM_ISSTARE); if(ERP_ITEM_ISSTARE && BooleanEnum.TRUE.getValue().equalsIgnoreCase(FINISH_INIT)) { SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss."); String time = formatter.format(new Date()); codeDuckingSyncServiceI.saveItemDataSyncScheduing(ERP_ITEM_BTMNAME); String outInfo = "============ æ§è¡äºä»ERP项ç®ä»£å·/åå·ä»£å·æ°æ® end;"; log.info(outInfo+time); } } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java
@@ -47,5 +47,7 @@ * @return */ R sendData(String oids); void saveItemDataSyncScheduing(String btmName); } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; import com.vci.ubcs.code.applyjtcodeservice.feign.MdmApplyGroupCodeProvider; import com.vci.ubcs.code.constant.MdmDuckingConstant; import com.vci.ubcs.code.dto.datapush.classify.JsonRootDataDTO; import com.vci.ubcs.code.dto.datapush.classify.NodeClassifyDTO; @@ -21,19 +22,23 @@ import com.vci.ubcs.code.dto.datapush.result.ResultNodeObjectDTO; import com.vci.ubcs.code.entity.*; 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.vo.pagemodel.*; import com.vci.ubcs.omd.feign.IBtmTypeClient; import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.starter.util.HttpUtils; import com.vci.ubcs.code.util.WsErpClientUtil; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; import com.vci.ubcs.starter.web.enumpck.UserSecretEnum; import com.vci.ubcs.starter.web.pagemodel.SessionInfo; import com.vci.ubcs.starter.web.util.VciBaseUtil; import com.vci.ubcs.starter.web.util.WebUtil; import lombok.extern.slf4j.Slf4j; import org.apache.poi.util.StringUtil; import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.tool.api.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -62,6 +67,20 @@ public String DATA_PARAM_NAME; @Value("${dataSyncPush.dataId:itemid}") private String itemId; @Value("${erp.item.attrKey:xhdh}") public String attrKey; /** * ä¸å¡ç±»åçæå¡ */ @Autowired private IBtmTypeClient btmTypeClient; /** * éç¨æ¥è¯¢ */ @Resource private CommonsMapper commonsMapper; @Resource private MdmEngineService mdmEngineServiceI; @@ -84,7 +103,8 @@ private IDockingSysIntParamService dockingSysIntParamService; @Resource private IDockingSysIntHeaderService dockingSysIntHeaderService; @Autowired(required = false) private MdmSearchItemCodeProvider mdmSearchItemCodeProvider; @Override @@ -149,6 +169,74 @@ return R.success("æå¨æ¨é宿,è¯·æ ¸å¯¹æ¯å¦æ¨éæå"); } /*** * 忥åå·ä»£å· */ @Override public void saveItemDataSyncScheduing(String btmName) { SearchItemParam searchItemParam=new SearchItemParam(); searchItemParam.setSystag("CODE"); //è°ç¨ç³»ç»æ è¯ searchItemParam.setLastchangedon(new Date()); searchItemParam.setStatus("1");// SearchItemVO searchItemVO= mdmSearchItemCodeProvider.getppModelByElem(searchItemParam); if(searchItemVO!=null) { searchItemVO.getCode(); searchItemVO.getMsg(); List<CodeClassify> codeClassifyList = codeClassifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, btmName)); try { if (CollectionUtils.isEmpty(codeClassifyList)) { throw new Throwable("åç±»æªæ¥è¯¢å°"); } CodeClassify codeClassify= codeClassifyList.get(0); List<SearchItemDataVO> dataList = searchItemVO.getData(); Map<String, SearchItemDataVO> dataVOMap = new HashMap<>(); List<String> itemCodeList = new ArrayList<>(); if (!CollectionUtils.isEmpty(dataList)) { dataList.stream().forEach(searchItemDataVO -> { String itemCode = StringUtils.isNotBlank(searchItemDataVO.getProjectitem()) ? searchItemDataVO.getProjectitem() : searchItemDataVO.getMmodelcode();//项ç®ä»£å· dataVOMap.put(itemCode, searchItemDataVO); itemCodeList.add(itemCode); }); String tableName = ""; R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(btmName); if (!r.isSuccess()) { throw new Throwable(r.getMsg()); } BtmTypeVO btmTypeVO = r.getData(); if (btmTypeVO == null) { throw new Throwable("æ ¹æ®ä¸å¡ç±»åæªæ¥è¯¢å°ä¸å¡ç±»å对象ï¼"); } tableName = btmTypeVO.getTableName(); if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) { throw new Throwable("æ ¹æ®ä¸å¡ç±»åæªæ¥è¯¢å°ä¸å¡ç±»åç¸å ³èç表"); } StringBuffer sb = new StringBuffer(); sb.append(" select * from "); sb.append(tableName); sb.append(" where 1=1"); sb.append(" and lastr=1 and lastv=1"); sb.append(" and codeclsfid = '" + codeClassify.getOid() + "'"); List<Map<String, String>> newDataList = commonsMapper.queryByOnlySqlForMap(sb.toString()); newDataList.stream().forEach(dataMap->{ String value= dataMap.getOrDefault(attrKey,""); if(dataVOMap.containsKey(attrKey)){ SearchItemDataVO searchItemDataVO=dataVOMap.get(attrKey); }else{ } }); } } catch (Throwable e){ log.error("æ¥è¯¢å¤±è´¥--->"+e); } } } /*** * æ¥è¯¢redis䏿°æ®ï¼å¯¹æ¯åæå ¥dockingtask Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -2431,41 +2431,58 @@ return codeOrderSecDTOList; } /*** * 读å屿§æ å°é ç½®ä¿¡æ¯ * @param systemId * @param libray * @param applyDatasVO * @param codeClassifyTemplateAttrVOList * @param dataObjectVO * @throws Throwable */ public void getConfigDatas(String systemId,String libray, ApplyBZDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable { LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>(); //妿尿°æ®è½¬æ¢ææéè¦çæ°æ®å¯¹è±¡ Map<String, String> attrMapConfigMap=new HashMap<>(); Map<String, String> propMaps=new HashMap<>(); try { log.info("å¼å§è¯»åç³»ç»é ç½®æä»¶ start"); Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap(); log.info("éæç³»ç»å±æ§æ å°é ç½®æä»¶æ¡ç®æ°-ã"+stringStringMap.size()); //stringStringMap.put("RLM","D:\\RLM.xml"); if(!CollectionUtils.isEmpty(stringStringMap)) { List<LibraryClsfDO> libraryClsfDOList=new ArrayList<>(); try { log.info("infoï¼éè¦è¯»åé ç½®æä»¶"); LibraryDO libraryDO = gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId, stringStringMap); List<LibraryClsfDO> libraryClsfDOList = libraryDO.getClsf(); libraryClsfDOList = libraryDO.getClsf(); } catch (Throwable e) { objerrorCode = "1"; e.printStackTrace(); throw new Throwable("éæç³»ç»æ è¯ä¸ºï¼ã" + systemId + "ãï¼åç±»åºä¸º:ã" + libray + "ãçéæå±æ§é ç½®æä»¶è¯»å失败"); } String path = stringStringMap.get(systemId); if(!CollectionUtils.isEmpty(libraryClsfDOList)) { Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2)); log.info("æ ¹æ®åæ°ï¼librayï¼-ã" + libray + "ä»é ç½®æä»¶ä¸æ¾å¯¹åºå±æ§æ å°é ç½®"); String path=stringStringMap.get(systemId); if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) { log.info("æ ¹æ®åæ°ï¼librayï¼-ã" + libray + "å¹é å°ç¸åºç屿§æ å°ä¿¡æ¯"); List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT)); propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2)); log.info("æ ¹æ®åæ°ï¼librayï¼-ã" + libray + "å¹é å°ç¸åºç屿§æ å°ä¿¡æ¯,屿§æ å°æ¡ç®æ°+" + clsfAttrMappingDOList.size()); }else{ objerrorCode = "1"; throw new Throwable("æ ¹æ®ç³»ç»æ è¯ã"+systemId+"ãæ¾å°å¯¹åºçé ç½®æä»¶:ã"+path+"ãï¼ä½æªè·åå°å¯¹åºçåºã"+libray+"ã屿§æ å°ä¿¡æ¯é ç½®"); } }else{ objerrorCode = "1"; throw new Throwable("æ ¹æ®ç³»ç»æ è¯ã" + systemId + "ãæ¾å°å¯¹åºçé ç½®æä»¶:ã" + path + "ãï¼ä½æªè·åå°å¯¹åºçåºã" + libray + "ã屿§æ å°ä¿¡æ¯é ç½®"); } }else{ objerrorCode = "1"; throw new Throwable("æªè·åå°éæå±æ§æ å°ç³»ç»é 置信æ¯"); } log.info("æ ¹æ®åæ°ï¼librayï¼-ã"+libray+"ä»é ç½®æä»¶ä¸æ¾å¯¹åºå±æ§æ å°é ç½® end "); }catch (Throwable e){ objerrorCode="1"; e.printStackTrace(); throw new Throwable("éæç³»ç»æ è¯ä¸ºï¼ã"+systemId+"ãï¼åç±»åºä¸º:ã"+libray+"ãçéæå±æ§é ç½®æä»¶è¯»å失败"); } LinkedList<String> rowNameList=new LinkedList<>(); LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>(); //æ ¹æ®å类模æ¿ç»ç»æ°æ® @@ -2540,7 +2557,13 @@ } /*** * æ ¹æ®å±æ§æ å°è½¬æ¢ç¼ç æéåæ®µ * 读å屿§æ å°é ç½®ä¿¡æ¯ * @param systemId * @param libray * @param applyDatasVO * @param codeClassifyTemplateAttrVOList * @param dataObjectVO * @throws Throwable */ public void getConfigDatas(String systemId,String libray, ApplyDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable { @@ -2548,35 +2571,43 @@ //妿尿°æ®è½¬æ¢ææéè¦çæ°æ®å¯¹è±¡ Map<String, String> attrMapConfigMap=new HashMap<>(); Map<String, String> propMaps=new HashMap<>(); try { log.info("å¼å§è¯»åç³»ç»é ç½®æä»¶ start"); Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap(); log.info("éæç³»ç»å±æ§æ å°é ç½®æä»¶æ¡ç®æ°-ã"+stringStringMap.size()); //stringStringMap.put("RLM","D:\\RLM.xml"); if(!CollectionUtils.isEmpty(stringStringMap)) { List<LibraryClsfDO> libraryClsfDOList=new ArrayList<>(); try { log.info("infoï¼éè¦è¯»åé ç½®æä»¶"); LibraryDO libraryDO = gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId, stringStringMap); List<LibraryClsfDO> libraryClsfDOList = libraryDO.getClsf(); libraryClsfDOList = libraryDO.getClsf(); } catch (Throwable e) { objerrorCode = "1"; e.printStackTrace(); throw new Throwable("éæç³»ç»æ è¯ä¸ºï¼ã" + systemId + "ãï¼åç±»åºä¸º:ã" + libray + "ãçéæå±æ§é ç½®æä»¶è¯»å失败"); } String path = stringStringMap.get(systemId); if(!CollectionUtils.isEmpty(libraryClsfDOList)) { Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2)); log.info("æ ¹æ®åæ°ï¼librayï¼-ã" + libray + "ä»é ç½®æä»¶ä¸æ¾å¯¹åºå±æ§æ å°é ç½®"); String path=stringStringMap.get(systemId); if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) { log.info("æ ¹æ®åæ°ï¼librayï¼-ã" + libray + "å¹é å°ç¸åºç屿§æ å°ä¿¡æ¯"); List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT)); propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2)); log.info("æ ¹æ®åæ°ï¼librayï¼-ã" + libray + "å¹é å°ç¸åºç屿§æ å°ä¿¡æ¯,屿§æ å°æ¡ç®æ°+" + clsfAttrMappingDOList.size()); }else{ objerrorCode = "1"; throw new Throwable("æ ¹æ®ç³»ç»æ è¯ã"+systemId+"ãæ¾å°å¯¹åºçé ç½®æä»¶:ã"+path+"ãï¼ä½æªè·åå°å¯¹åºçåºã"+libray+"ã屿§æ å°ä¿¡æ¯é ç½®"); } }else{ objerrorCode = "1"; throw new Throwable("æ ¹æ®ç³»ç»æ è¯ã" + systemId + "ãæ¾å°å¯¹åºçé ç½®æä»¶:ã" + path + "ãï¼ä½æªè·åå°å¯¹åºçåºã" + libray + "ã屿§æ å°ä¿¡æ¯é ç½®"); } }else{ objerrorCode = "1"; throw new Throwable("æªè·åå°éæå±æ§æ å°ç³»ç»é 置信æ¯"); } log.info("æ ¹æ®åæ°ï¼librayï¼-ã"+libray+"ä»é ç½®æä»¶ä¸æ¾å¯¹åºå±æ§æ å°é ç½® end "); }catch (Throwable e){ objerrorCode="1"; e.printStackTrace(); throw new Throwable("éæç³»ç»æ è¯ä¸ºï¼ã"+systemId+"ãï¼åç±»åºä¸º:ã"+libray+"ãçéæå±æ§é ç½®æä»¶è¯»å失败"); } LinkedList<String> rowNameList=new LinkedList<>(); LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>(); //æ ¹æ®å类模æ¿ç»ç»æ°æ®