From 81edec7c3bdef059a44e7c5e7b81d35ea09a72ed Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 13 九月 2023 08:52:39 +0800 Subject: [PATCH] 人员组织结构申请接口开发 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 85 +++++++++++++++++++++++++++++++----------- 1 files changed, 62 insertions(+), 23 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java index c81e986..16ee22f 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java @@ -179,7 +179,7 @@ * @return excel鐨勬枃浠跺湴鍧� */ @Override - public String downloadTopImportExcel(String codeClassifyOid){ + public String downloadTopImportExcel(String codeClassifyOid){ List<CodeClassifyTemplateVO> templateVOList=new ArrayList<>(); VciBaseUtil.alertNotNull("瀵煎嚭妯℃澘","瀵煎嚭鐨勯厤缃�",codeClassifyOid,"涓婚搴撳垎绫荤殑涓婚敭"); CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid); @@ -2090,6 +2090,7 @@ XMLResultDataObjectDetailDO resultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); if(isCodeOrGroupCode) { if(StringUtils.isBlank(groupCode)){ + errorid="1"; mes+="锛涚敵璇风殑缂栫爜绫诲瀷涓洪泦鍥㈢爜锛岀瓑寰呴泦鍥㈢紪鐮佽祴鍊�"; } resultDataObjectDetailDO.setCode(groupCode); @@ -2157,14 +2158,16 @@ } if(isCodeOrGroupCode) { if(StringUtils.isBlank(groupCode)){ + resultDataObjectDetailDO.setErrorid("1"); msg="鐢宠鐨勭紪鐮佺被鍨嬩负闆嗗洟鐮侊紝绛夊緟闆嗗洟缂栫爜璧嬪��"; } resultDataObjectDetailDO.setCode(groupCode); }else{ resultDataObjectDetailDO.setCode(code); + resultDataObjectDetailDO.setErrorid("0"); } resultDataObjectDetailDO.setId(sourceOid); - resultDataObjectDetailDO.setErrorid("0"); + resultDataObjectDetailDO.setMsg(msg); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); //澶勭悊浼犻�佺殑鏁版嵁涓叧閿睘鎬ч噸澶嶇殑锛岀洿鎺ユ嬁鍒板凡缁忕敵璇峰埌缂栫爜鐨勬暟鎹紪鐮佺洿鎺ュ皢璧嬬粰鍏抽敭灞炴�ч噸澶嶇殑鏁版嵁 @@ -2324,15 +2327,26 @@ sb.append(" select * from "); sb.append(tableName); sb.append(" where 1=1 "); - sb.append(" id in ("); - sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0]))); - sb.append(")"); + sb.append(" and lastr=1 and lastv=1" ); + if(isCodeOrGroupCode) { + sb.append(" and ( groupcode in ("); + sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0]))); + sb.append(")"); + sb.append(" or id in ("); + sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0]))); + sb.append("))"); + }else{ + sb.append(" and id in ("); + sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0]))); + sb.append(")"); + } + List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString()); List<ClientBusinessObject> cboList= ChangeMapTOClientBusinessObjects(dataMapList); Map<String, ClientBusinessObject> codeSystemObjectMap = cboList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); Map<String, String> errorMap = new HashMap<>(); List<CodeOrderDTO> codeOrderDTOList = new ArrayList<>(); - this.getCodeOrderDTOs(codeClassifyVO, templateVO, codeDataMap, codeSystemObjectMap, codeOrderDTOList, errorMap); + this.getCodeOrderDTOs(codeClassifyVO, templateVO, codeDataMap, codeSystemObjectMap, codeOrderDTOList, errorMap,isCodeOrGroupCode); // List<CodeClassifyProcessTempVO> codeClassifyProcessTempVOS=codeClassifyProcessTempService.listProcessTemplate(templateVO.getOid(),"code_cls_flow_use_order"); boolean isProcess=false; /** if(!CollectionUtils.isEmpty(codeClassifyProcessTempVOS)){ @@ -2354,7 +2368,7 @@ RowDatas rowData=codeDataMap.get(code); String status=rowData.getStatus(); String operation=rowData.getOperation(); - if (cbo.getTs().compareTo(orderDTO.getTs())==0?true:false) { + if (cbo.getTs().compareTo(orderDTO.getTs())==0?false:true) { // throw new VciBaseException("鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯"); errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+";鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯"); } @@ -2396,7 +2410,7 @@ List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid())); if (!CollectionUtils.isEmpty(newCodeAllCodeList)) { - CodeAllCode codeCbo = codeAllCodeList.get(0); + CodeAllCode codeCbo = newCodeAllCodeList.get(0); log.info("codeCbos code:" + codeCbo.getId()); codeCbo.setLcStatus(status); codeAllCodeList.add(codeCbo); @@ -2415,7 +2429,7 @@ List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid())); log.info("codeCbos size:" + newCodeAllCodeList.size()); if (!CollectionUtils.isEmpty(newCodeAllCodeList)) { - CodeAllCode codeCbo = codeAllCodeList.get(0); + CodeAllCode codeCbo = newCodeAllCodeList.get(0); log.info("codeCbos code:" + codeCbo.getId()); codeCbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue()); codeAllCodeList.add(codeCbo); @@ -2473,7 +2487,7 @@ //瀛樺偍鏁版嵁 try { engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),updateList); - codeAllCodeService.saveBatch(codeAllCodeList); + codeAllCodeService.saveOrUpdateBatch(codeAllCodeList); if(deleteList.size()>0) { commonsMapper.deleteByTaleAndOid(tableName, VciBaseUtil.array2String(deleteList.toArray(new String[]{}))); } @@ -2607,17 +2621,36 @@ //娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙� if (!CollectionUtils.isEmpty(conditionMap)) { - final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()) + " where 1 = 1 "}; + String tableName=""; + R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); + if(r.isSuccess()) { + BtmTypeVO btmTypeVO = r.getData(); + if (btmTypeVO != null) { + tableName = btmTypeVO.getTableName(); + + } + } + if (StringUtils.isBlank(tableName)) { + String errormsg="鏍规嵁涓氬姟绫诲瀷涓烘煡璇㈠埌鐩稿叧涓氬姟琛�"; + errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+errormsg); + return; + } + final String[] sql = {"select count(*) from " + tableName + " t where 1 = 1 "}; conditionMap.forEach((key, value) -> { - sql[0] += " and " + key + " = " + value; + if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)){ + sql[0] += " and " + key + " is null "; + }else{ + sql[0] += " and " + key + " = " + value; + } + }); if (StringUtils.isNotBlank(orderDTO.getOid())) { //淇敼鐨勬椂鍊欙紝闇�瑕佹帓闄よ嚜宸� - sql[0] += " and oid != '" + orderDTO.getOid() + "'"; + sql[0] += " and t.oid != '" + orderDTO.getOid() + "'"; } else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) { - sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'"; + sql[0] += " and t.oid != '" + orderDTO.getCopyFromVersion() + "'"; } - sql[0] += " and lastR = '1' and lastV = '1' "; + sql[0] += " and t.lastR = '1' and t.lastV = '1' "; if (commonsMapper.queryCountBySql(sql[0]) > 0) { String ruleInfoMsg = keyRuleVO == null ? "" : "鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{0},蹇界暐澶у皬鍐�--{1},蹇界暐鍏ㄥ崐瑙�--{2},蹇界暐鍏ㄩ儴绌烘牸--{3}"; String[] objs = new String[]{trim ? "鏄�" : "鍚�", ignoreCase ? "鏄�" : "鍚�", ignoreWidth ? "鏄�" : "鍚�", trimAll ? "鏄�" : "鍚�"}; @@ -2817,13 +2850,19 @@ * @param errorMap * @return */ - private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap){ - codeDataMap.keySet().forEach(code->{ - RowDatas rowDatas=codeDataMap.get(code); - Map<String, String> data= rowDatas.getFiledValue(); + private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap,boolean isCodeOrGroupCode){ + codeSystemObjectMap.keySet().forEach(code->{ + ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code); + if(isCodeOrGroupCode){ + code=sysDataObject.getAttributeValue("GROUPCODE"); + if(StringUtils.isBlank(code)){ + code=sysDataObject.getId(); + } + } CodeOrderDTO orderDTO = new CodeOrderDTO(); - if(codeSystemObjectMap.containsKey(code)){ - ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code); + if(codeDataMap.containsKey(code)){ + RowDatas rowDatas=codeDataMap.get(code); + Map<String, String> data= rowDatas.getFiledValue(); orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭 orderDTO.setOid(sysDataObject.getOid());//鏁版嵁oid orderDTO.setLcStatus(rowDatas.getStatus());//鐘舵�� @@ -4001,7 +4040,7 @@ DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject); for (String key:dataMap.keySet()){ Object value= dataMap.getOrDefault(key,""); - clientBusinessObject.setAttributeValue(key,value.toString()); + clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString()); } clientBusinessObjectList.add(clientBusinessObject); }); @@ -4434,7 +4473,7 @@ * @param idList * @param btmName */ - private void sendApplyGroupcode(List<String> idList,String btmName,String operationType){ + public void sendApplyGroupcode(List<String> idList,String btmName,String operationType){ String oids=VciBaseUtil.array2String(idList.toArray(new String[]{})); if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) { mdmInterJtClient.applyGroupCode(oids,btmName); -- Gitblit v1.9.3