Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -15,7 +15,7 @@ props: { pageSize: { type: String, default: "10" default: "100" }, currentPage: { type: String, Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -93,7 +93,7 @@ <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid" :templateOid="templateOid" :visible.sync="similarVisible"></ResembleQueryDialog> <div class="block" style="display: flex; justify-content: flex-end"> <el-pagination :current-page="page.currentPage" :page-size="page.pageSizes" :page-sizes="page.pageSizes" <el-pagination :current-page="page.currentPage" :page-size="page.pageSize" :page-sizes="page.pageSizes" :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" @current-change="handleCurrentChange"> Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -25,12 +25,12 @@ }; }, created() { console.log('referer') if (!this.referConfig.options) { this.referConfig.options = { isMuti: false } } console.log('referConfig',this.referConfig) }, mounted() { var title = this.referConfig.title || ''; Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -158,22 +158,34 @@ label: '英文名称', sortable: true, width: 150, search: true search: true, formatter:function (d){ return d.id || d.data.id } }, { prop: 'name', label: '中文名称', sortable: true, width: 150, search: true search: true, formatter:function (d){ return d.name || d.data.name } }, { prop: 'description', label: '描述', width: 250 width: 250, formatter:function (d){ return d.description || d.data.description } }, { prop: 'secretGradeText', label: '密级', width: 60, hidden: (!this.controllerSecret) hidden: (!this.controllerSecret), formatter:function (d){ return d.secretGradeText || d.data.secretGradeText } }]; } else { this.option.column = this.options.tableConfig.cols.map(item => { @@ -181,6 +193,16 @@ let formatter=item.template || item.templet; if(typeof formatter == "string" && formatter !=''){ formatter=eval("(" + formatter + ")") }else{ formatter=function (d){ if(d[item.field]!=undefined){ return d[item.field] }else if(d.data[item.field] !=undefined){ return d.data[item.field] }else { return '' } } } return { ...item, @@ -295,6 +317,12 @@ this.data = res.data.data.records; this.page.total=res.data.data.total; } this.data=this.data.map(item => { item.data=item.data || {} return { ...item } }) this.loading = false; this.selectionClear(); }).catch(error=>{ Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
@@ -87,10 +87,12 @@ }, created() { this.getParams(); // console.log('referConfig:') // console.log(this.referConfig) }, mounted() { console.log('referrTable') if(this.referConfig.options.page){ this.page.pageSize=this.referConfig.options.page.limit || this.referConfig.options.page.pageSize; this.page.currentPage=this.referConfig.options.page.page || this.referConfig.options.page.currentPage; @@ -200,10 +202,9 @@ message: "请输入" + item.field, trigger: "blur" }]; /*item.formatter=function(d,thisItem){ var vciWebComboxStore = layui.vciWebComboxStore; return vciWebComboxStore.getComboxText(thisItem.enumCode,d[thisItem.field]); };*/ item.formatter=function(d){ return d.field || d.data.field }; } return { ...item, @@ -250,6 +251,16 @@ let formatter=item.template || item.templet; if(typeof formatter == "string" && formatter !=''){ formatter=eval("(" + formatter + ")") }else{ formatter=function (d){ if(d[item.field]!=undefined){ return d[item.field] }else if(d.data[item.field] !=undefined){ return d.data[item.field] }else { return '' } } } return { ...item, @@ -270,6 +281,7 @@ this.params=paramsData; }, setValue(){ console.log('确定') if(this.selectionList.length==0){ this.$message.warning( '没有选择数据'); return false; @@ -359,6 +371,12 @@ this.data = res.data.data.records; this.page.total=res.data.data.total; } this.data=this.data.map(item => { item.data=item.data || {} return { ...item } }) this.loading = false; this.selectionClear(); }).catch(error=>{ Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
@@ -123,10 +123,23 @@ this.params=queryParams; }, getTree(){ getTree(this.params,this.treeUrl).then(res => { this.treeData=res.data getTree() { getTree(this.params, this.treeUrl).then(res => { res.data.map(item => { if (!item.attribute) { item.attribute = { data: {} } } else { item.attribute.data = item.attribute.data || {} } return { ...item, leaf: !item.hasChildren } }) this.treeData = res.data }) }, treeLoad: function (treeNode, resolve) { const parentOid = (treeNode.level === 0) ? 0 : treeNode.data.oid; @@ -142,6 +155,13 @@ } getLazyTree(this.params,this.treeUrl).then(res => { resolve(res.data.data.map(item => { if(!item.attribute){ item.attribute={ data:{} } }else{ item.attribute.data=item.attribute.data || {} } return { ...item, leaf: !item.hasChildren Source/UBCS-WEB/src/const/code/classisyValueTreeDialog.js
@@ -1,8 +1,8 @@ export default { nodeKey: 'oid', // nodeKey: 'oid', border: true, lazy: false, defaultExpandAll: true, defaultExpandAll: false, treeLoad: function (node, resolve) { // const parentId = (node.level === 0) ? 0 : node.data.id; Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -28,10 +28,10 @@ page: { total: 0, currentPage: 1, pageSize: 10, pageSize: 100, pageSizes: [10, 30, 50, 100, 200], }, pageSize: "10", pageSize: "100", currentPage: "1", codeClassifyOid: "", coderuleoid: "", Source/UBCS-WEB/src/views/code/code.vue
@@ -1341,7 +1341,7 @@ /*克隆编码规则对话框控制变量*/ cloneSettingBox: false, /*从其他规则克隆码段*/ cloneOtherCodeRuleSettingBox: false, @@ -2418,7 +2418,7 @@ this.updateStatus(oid, update); } }, /** 打开编码规则克隆对话框*/ openCodeRuleDialog() { if (!this.tipsMessage(this.selectionList)) { Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/HttpUtil.java
@@ -92,7 +92,7 @@ * 添加请求头信息 */ if(headers!=null&&headers.size()>0) { for (Map.Entry<String, String> entry : params.entrySet()) { for (Map.Entry<String, String> entry : headers.entrySet()) { httpGet.addHeader(entry.getKey(), entry.getValue()); } } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/ResultOrgData.java
@@ -1,5 +1,7 @@ package com.vci.ubcs.code.vo.webserviceModel.person; import java.util.List; public class ResultOrgData { /*** * 标识处理成功或失败 @@ -12,7 +14,7 @@ /** * 分发的所有数据的信息 */ private ResultMdMapping mdMappings; private List<ResultMdMapping> mdMappings; public boolean isSuccess() { return success; @@ -30,11 +32,11 @@ this.message = message; } public ResultMdMapping getMdMappings() { public List<ResultMdMapping> getMdMappings() { return mdMappings; } public void setMdMappings(ResultMdMapping mdMappings) { public void setMdMappings(List<ResultMdMapping> mdMappings) { this.mdMappings = mdMappings; } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -595,7 +595,12 @@ if(StringUtils.isNotBlank(libName)){ libNameList=VciBaseUtil.str2List(libName); } List<CodeClassify> doList =codeClassifyMapper.getRMLibByName(libNameList,"Enabled",AuthUtil.getTenantId()); List<CodeClassify> doList =codeClassifyMapper.getRMLibByName(libNameList,"Enabled",AuthUtil.getTenantId() .equals( nacosConfigCache .getAdminUserInfo() .getTenantId() ) ? null:AuthUtil.getTenantId()); List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList); return voList; } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -437,18 +437,11 @@ //备注 cbo.setDescription(orderDTO.getDescription()); cboList.add(cbo); // // cboList.add(cbo); List<String> codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), cboList); // List<String> charList = new ArrayList<>(); // for (BaseModel baseModel : cboList) { // charList.add(baseModel.getId()); // } batchSaveSelectChar(templateVO, cboList); return codeList.size() > 0 ? codeList.get(0) : ""; // return null; } /** Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -64,6 +64,7 @@ import java.util.stream.Collectors; import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; import static com.vci.ubcs.code.constant.MdmEngineConstant.IMPORT_ROW_INDEX; import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC; /*** @@ -353,6 +354,7 @@ public ResultOrgData syncDataForPerson(PersonData personData) { boolean isUsedFlag= personAndDeptConfig.isUsedFlag(); ResultOrgData resultOrgData=new ResultOrgData(); List<ResultMdMapping> resultMdMappingList=new ArrayList<>(); boolean success=true; String message=""; if(isUsedFlag){ @@ -380,12 +382,17 @@ success=false; throw new Throwable ("根据传输的分类,未获取MDM系统中对应模板"); } List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) ).collect(Collectors.toList()); List<PersonMasterData> personMasterDataList= personData.getMasterData(); List<Map> dataList=new ArrayList<>(); ApplyDatasVO applyDatasVO=new ApplyDatasVO(); List<String> codeList=new ArrayList<>(); List<ApplyDataVO> applyDataVOList=new ArrayList<>(); List<ApplyDataVO> deleteDataVOList=new ArrayList<>(); personMasterDataList.stream().forEach(personMasterData -> { ApplyDataVO object=new ApplyDataVO(); object.setCode(personMasterData.getLm_code());//编码 @@ -393,6 +400,7 @@ object.setEditor(personMasterData.getModifier());//修改者 object.setId(personMasterData.getId());//主键 object.setStatus(CodeDefaultLC.RELEASED.getValue());//状态则需要判断 Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData); List<ProppertyVO> proppertyVOList=new ArrayList<>(); dataMap.forEach((key,vaule)->{ @@ -402,41 +410,154 @@ proppertyVOList.add(proppertyVO); }); object.setProp(proppertyVOList); applyDataVOList.add(object); if(personMasterData.getDr()==1){ object.setOperate("delete");//操作类型 deleteDataVOList.add(object); }else{ String worker_category=personMasterData.getWorker_category(); codeList.add(personMasterData.getLm_code()); object.setOperate("create"); applyDataVOList.add(object); } }); applyDatasVO.setObject(applyDataVOList); DataObjectVO dataObjectVO = new DataObjectVO(); List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) ).collect(Collectors.toList()); this.getConfigDatas("ERP", personLibrary, applyDatasVO, attrVOS, dataObjectVO); log.info("end:数据组织完毕"); //规则的主键需要去获取 CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){ success=false; log.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息"); throw new Throwable ("根据传输的分类,未获取分类相关信息"); } CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){ success=false; throw new Throwable ("根据传输的分类,未获取MDM系统中对应规则"); } log.info("end:规则获取完毕"); R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); if(!r.isSuccess()) { throw new Throwable(r.getMsg()); } BtmTypeVO btmTypeVO = r.getData(); if (btmTypeVO == null) { throw new Throwable("根据业务类型未查询到业务类型对象!"); } String 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 id in ("); sb.append(VciBaseUtil.toInSql(codeList.toArray(new String[0]))); sb.append(")"); List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString()); List<ClientBusinessObject> cboList= ChangeMapTOClientBusinessObjects(dataMapList); ApplyDatasVO applyDatasVO=new ApplyDatasVO(); ApplyDatasVO editDatasVO=new ApplyDatasVO(); if(!CollectionUtils.isEmpty(cboList)){ Map<String,ClientBusinessObject> oldpplyDataVOMap= cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); //数据库不存在的 List<ApplyDataVO> applyApplyDataVOList = applyDataVOList.stream().filter(cbo -> { String code =cbo.getCode(); return !oldpplyDataVOMap.containsKey(code); }).collect(Collectors.toList()); applyDatasVO.setObject(applyApplyDataVOList); //数据库存在的 List<ApplyDataVO> editApplyDataVOList = applyDataVOList.stream().filter(cbo -> { String code =cbo.getCode(); if(oldpplyDataVOMap.containsKey(code)){ cbo.setOperate("update"); } return oldpplyDataVOMap.containsKey(code); }).collect(Collectors.toList()); editApplyDataVOList.addAll(deleteDataVOList); editDatasVO.setObject(editApplyDataVOList); }else{ applyDatasVO.setObject(applyDataVOList); } LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>(); if(editDatasVO.getObject()!=null&&editDatasVO.getObject().size()>0){ DataObjectVO dataObjectVO = new DataObjectVO(); this.getConfigDatas("ERP", personLibrary, editDatasVO, attrVOS, dataObjectVO); log.info("start:修改数据执行完毕"); boolean personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode(); mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode); log.info("end:修改数据执行完毕"); } if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) { DataObjectVO dataObjectVO = new DataObjectVO(); this.getConfigDatas("ERP", personLibrary, editDatasVO, attrVOS, dataObjectVO); CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); if(ruleVO==null||"".equals(ruleVO.getOid())){ throw new Throwable("编码规则"); } List<XMLResultDataObjectDetailDO> xDOs=new CopyOnWriteArrayList<>(); dataObjectVO.getRowData().parallelStream().forEach(rowData->{ String mesg=""; try { CodeOrderDTO orderDTO = new CodeOrderDTO(); List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>(); orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键 if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) { ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> { if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//规则之定义为可变码段存储主数据传递过来的数据 CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO(); CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid()); CodeOrderSecDTO.setSecValue(rowData.getCode()); codeOrderSecDTOList.add(CodeOrderSecDTO); } }); } orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码 orderDTO.setData(rowData.getFiledValue()); engineService.addSaveCode(orderDTO); } catch (Exception e) { mesg=e.getMessage(); e.getMessage(); e.printStackTrace(); }finally { XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO(); x.setId(rowData.getOid()); x.setCode(rowData.getCode()); x.setMsg(mesg); x.setErrorid("1"); xDOs.add(x); } }); resultDataObjectDetailDOs.addAll(xDOs); boolean finalSuccess1 = success; String finalMessage1 = message; resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{ ResultMdMapping resultMdMapping=new ResultMdMapping(); resultMdMapping.setBusiDataId(resultDataObjectDetailDO.getId()); resultMdMapping.setSuccess(finalSuccess1); resultMdMapping.setEntityCode(" "); resultMdMapping.setMdmCode(resultDataObjectDetailDO.getCode()); resultMdMapping.setMessage(finalMessage1); resultMdMapping.setSubMdMappings(null); resultMdMappingList.add(resultMdMapping); }); log.info("end:申请获取完毕"); } }catch (Throwable e){ success=false; message="人员数据接受失败:"+e.getMessage(); }finally { //组织返回结果 boolean finalSuccess = success; String finalMessage = message; masterDataList.stream().forEach(masterData -> { ResultMdMapping resultMdMapping=new ResultMdMapping(); resultMdMapping.setBusiDataId(masterData.getId()); resultMdMapping.setSuccess(finalSuccess); resultMdMapping.setEntityCode(" "); resultMdMapping.setMdmCode(masterData.getLm_code()); resultMdMapping.setMessage(finalMessage); resultMdMapping.setSubMdMappings(null); }); }finally { resultOrgData.setMessage(message); resultOrgData.setSuccess(success); resultOrgData.setMdMappings(resultMdMappingList); Object object = JSONObject.toJSON(resultOrgData); return resultOrgData; } } Object object = JSONObject.toJSON(resultOrgData); return resultOrgData; } /**** Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java
@@ -3,7 +3,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @ConfigurationProperties(prefix="code.applypersonanddept") @ConfigurationProperties(prefix="org.applypersonanddept") @Component public class PersonAndDeptConfig { /*** @@ -23,7 +23,14 @@ * 部门分类编码 */ private String deptClassCode; /** * 人员是否申请集团码 */ private boolean personApplyGroupCode; /** * 组织机构是否申请集团码 */ private boolean deptApplyGroupCode; /*** * 是否开启 */ @@ -69,6 +76,22 @@ isUsedFlag = usedFlag; } public boolean isPersonApplyGroupCode() { return personApplyGroupCode; } public void setPersonApplyGroupCode(boolean personApplyGroupCode) { this.personApplyGroupCode = personApplyGroupCode; } public boolean isDeptApplyGroupCode() { return deptApplyGroupCode; } public void setDeptApplyGroupCode(boolean deptApplyGroupCode) { this.deptApplyGroupCode = deptApplyGroupCode; } @Override public String toString() { return "PersonAndDeptConfig{" + @@ -76,6 +99,8 @@ ", personClassCode='" + personClassCode + '\'' + ", deptLibrary='" + deptLibrary + '\'' + ", deptClassCode='" + deptClassCode + '\'' + ", personApplyGroupCode=" + personApplyGroupCode + ", deptApplyGroupCode=" + deptApplyGroupCode + ", isUsedFlag=" + isUsedFlag + '}'; } Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -408,7 +408,7 @@ </foreach> </if> <if test="tenantId != null and tenantId != ''"> codeclassify0.tenant_id = #{tenantId} and codeclassify0.tenant_id = #{tenantId} </if> order by id asc </select>