From aa8db511b7823300bf3312018fbec75a6fa1ccf5 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 27 六月 2023 16:25:06 +0800 Subject: [PATCH] 提交代码 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 131 +++++++++++++++++++++++++++++++------------ 1 files changed, 95 insertions(+), 36 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 118c0c2..4d865ed 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 @@ -21,6 +21,7 @@ import com.vci.ubcs.code.vo.webserviceModel.attrmap.RowDatas; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO; import com.vci.ubcs.omd.feign.IBtmTypeClient; +import com.vci.ubcs.omd.feign.IWebSecretClient; import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.starter.bo.WriteExcelData; import com.vci.ubcs.starter.exception.VciBaseException; @@ -59,6 +60,7 @@ 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; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.File; @@ -154,6 +156,11 @@ */ @Autowired private IBtmTypeClient btmTypeClient; + /*** + * 瀵嗙骇鏈嶅姟 + */ + @Resource + private IWebSecretClient secretService; /** * 鎵归噺鐢宠锛氶�夊彇閫変腑鍒嗙被涓嬬殑鎵�鏈夋ā鏉垮叧閿睘鎬э紝鐩镐技灞炴�э紝蹇呭~灞炴�э紝鍐欏叆execl涓� * @@ -189,7 +196,7 @@ String field=codetemplateAttr.getId(); String name=codetemplateAttr.getName(); CodeClassifyTemplateAttrVO codeBaseAttributeDTO=new CodeClassifyTemplateAttrVO(); - boolean res=codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE)//鍩烘湰灞炴�у瓧娈垫樉绀� + boolean res=(StringUtils.isNotBlank(codetemplateAttr.getAttributeGroup())&& codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE))//鍩烘湰灞炴�у瓧娈垫樉绀� ||(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag()))//鍏抽敭灞炴�х殑瀛樺叆 ||(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) //鐩镐技灞炴�х殑瀛樺叆 ||(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag())); @@ -752,7 +759,7 @@ * @return 鏈夐敊璇俊鎭殑excel */ @Override - public CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid, String classifyAttr,File file) { + public CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid, String classifyAttr,File file) throws Throwable{ VciBaseUtil.alertNotNull(codeClassifyOid,"鍒嗙被鐨勪富閿�"); ReadExcelOption reo = new ReadExcelOption(); reo.setReadAllSheet(true); @@ -997,7 +1004,7 @@ if (isExport||newErrorMap.size() > 0) { createRedisDatas(uuid + "-ok", templateVO, rowIndexCboMap, dataSet, fieldIndexMap, newErrorMap, true); } else { - List<String> dataCBOIdList=new ArrayList<>(); + List<BaseModel> dataCBOIdList=new ArrayList<>(); //SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); List<ClientBusinessObject> finalNeedSaveCboList = needSaveCboList; CodeClassifyTemplateVO finalTemplateVO = templateVO; @@ -1011,7 +1018,7 @@ BeanUtil.convert(clientBusinessObject,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject)); dataCBOList.add(baseModel); - dataCBOIdList.add(baseModel.getOid()); + dataCBOIdList.add(baseModel); }); if (!CollectionUtils.isEmpty(thisCbos)) { @@ -1338,7 +1345,7 @@ try { codeList = productCodeService.productCodeAndSaveData(classifyFullInfo,templateVO,ruleVO, orderDTO.getSecDTOList(),dataCBOList); //濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰 - engineService.batchSaveSelectChar(templateVO, dataCBOIdList); + engineService.batchSaveSelectChar(templateVO, dataCBOList); } catch (Exception e) { e.printStackTrace(); log.error("鎵逛簡鐢宠鏃跺け璐�"); @@ -1427,7 +1434,7 @@ @Override public R batchImportData(List<CodeImprotSaveDatVO> codeImprotSaveDatVOList, String classifyAttr, boolean isImprot) { - List<String> allNeedSaveCboList=new ArrayList<>(); + List<BaseModel> dataCBOList=new ArrayList<>(); codeImprotSaveDatVOList.stream().forEach(codeImprotSaveDatVO -> { List<SheetRowData> rowDataList = new ArrayList<>(); List<ClientBusinessObject>cboList=new ArrayList<>(); @@ -1517,13 +1524,13 @@ log.info("鍒嗙被锛�"+classifyFullInfo.getCurrentClassifyVO().getName()+"鏁版嵁:"+needSaveCboList.size()); if (!CollectionUtils.isEmpty(needSaveCboList)) { - List<BaseModel> dataCBOList=new ArrayList<>(); +// List<BaseModel> dataCBOList=new ArrayList<>(); needSaveCboList.stream().forEach(clientBusinessObject -> { BaseModel baseModel=new BaseModel(); BeanUtil.convert(clientBusinessObject,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject)); dataCBOList.add(baseModel); - allNeedSaveCboList.add(baseModel.getOid()); +// allNeedSaveCboList.add(baseModel); }); try { //9.鎴戜滑澶勭悊涓氬姟鏁版嵁 @@ -1537,7 +1544,7 @@ } } //濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰 - engineService.batchSaveSelectChar(codeClassifyTemplateVO, allNeedSaveCboList); + engineService.batchSaveSelectChar(codeClassifyTemplateVO, dataCBOList); }); return R.success(isImprot?"鎵归噺鍘嗗彶瀵煎叆鎴愬姛":"鎵归噺鐢宠鎴愬姛"); } @@ -1802,7 +1809,7 @@ try { productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList); //濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰 - engineService.batchSaveSelectChar(templateVO, allNeedSaveCboList); + engineService.batchSaveSelectChar(templateVO, dataCBOList); // if(!isProcess){ needSaveCboList.stream().forEach(needSaveCbo->{ XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); @@ -1859,6 +1866,7 @@ * @param dataObjectVO 鏁版嵁淇℃伅 * @param resultDataObjectDetailDOs 閿欒淇℃伅 */ + @Transactional(rollbackFor = VciBaseException.class) @Override public void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) { String errorid=""; @@ -1887,9 +1895,30 @@ getFieldIndexMap(titleRowData, attrNameIdMap, fieldIndexMap); Map<String, String> cboOidMap = new HashMap<>(); cboOidMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])) + ")"); - R<BtmTypeVO> r= btmTypeClient.getDetail(templateVO.getBtmTypeId()); - BtmTypeVO btmTypeVO =r.getData(); - String tableName=btmTypeVO.getTableName(); + String tableName =""; + try { + R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); + if(r.getCode()!=200) { + throw new Throwable(r.getMsg()); + } + BtmTypeVO btmTypeVO = r.getData(); + if (btmTypeVO == null) { + throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷瀵硅薄锛�"); + } + tableName = btmTypeVO.getTableName(); + if (StringUtils.isBlank(tableName)) { + throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷鐩稿叧鑱旂殑琛�"); + } + }catch (Throwable e){ + log.error("鏌ヨ涓氬姟瀵硅薄琛�"+e); + XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); + xmlResultDataObjectDetailDO.setErrorid("103"); + xmlResultDataObjectDetailDO.setMsg("鏌ヨ涓氬姟瀵硅薄琛�"+e); + xmlResultDataObjectDetailDO.setId(""); + xmlResultDataObjectDetailDO.setCode(""); + resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); + return; + } StringBuffer sb=new StringBuffer(); sb.append(" select * from "); @@ -1913,7 +1942,7 @@ Map<String, CodeOrderDTO> orderDTOMap = codeOrderDTOList.stream().filter(orderDTO -> orderDTO != null && StringUtils.isNotBlank(orderDTO.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); List<BaseModel> updateList = new ArrayList<>(); List<CodeAllCode> codeAllCodeList = new ArrayList<>(); - List<BaseModel> deleteList = new ArrayList<>(); + List<String> deleteList = new ArrayList<>(); CodeClassifyTemplateVO firstTemplateVO = templateService.getObjectHasAttrByOid(orderDTOMap.values().stream().findFirst().get().getTemplateOid()); Map<String, ClientBusinessObject> cboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); @@ -1964,6 +1993,15 @@ } catch (VciBaseException e) { e.printStackTrace(); } + + List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid())); + if (!CollectionUtils.isEmpty(newCodeAllCodeList)) { + CodeAllCode codeCbo = codeAllCodeList.get(0); + log.info("codeCbos code:" + codeCbo.getId()); + codeCbo.setLcStatus(status); + codeAllCodeList.add(codeCbo); + } + BaseModel baseModel=new BaseModel(); BeanUtil.convert(cbo,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(cbo)); @@ -1973,8 +2011,6 @@ // errorMap.put(code,errorMap.getOrDefault(code, errorMap.getOrDefault(code,"")+";鏁版嵁"+code+"鍦ㄦ祦绋嬩腑锛屼笉鍏佽鍒犻櫎!")); //}else { try { - Map<String, String> condtionMap = new HashMap<>(); - condtionMap.put("createcodeoid", cbo.getOid()); log.info("oid:" + cbo.getOid()); List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid())); log.info("codeCbos size:" + newCodeAllCodeList.size()); @@ -1984,7 +2020,7 @@ codeCbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue()); codeAllCodeList.add(codeCbo); } - deleteList.add(cbo); + deleteList.add(cbo.getOid()); }catch (VciBaseException e) { e.printStackTrace(); } @@ -1998,6 +2034,15 @@ cbo.setAttributeValue("lcstatus", status); // } + + List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid())); + if (!CollectionUtils.isEmpty(newCodeAllCodeList)) { + CodeAllCode codeCbo = codeAllCodeList.get(0); + log.info("codeCbos code:" + codeCbo.getId()); + codeCbo.setLcStatus(status); + codeAllCodeList.add(codeCbo); + } + BaseModel baseModel=new BaseModel(); BeanUtil.convert(cbo,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(cbo)); @@ -2029,9 +2074,9 @@ try { engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmtypeid(),updateList); codeAllCodeService.saveBatch(codeAllCodeList); - commonsMapper.deleteByTaleAndOid("",null); - - // engineService.del(deleteList); + if(deleteList.size()>0) { + commonsMapper.deleteByTaleAndOid(tableName, VciBaseUtil.array2String(deleteList.toArray(new String[]{}))); + } errorid="0"; msg="鏇存柊/鐘舵�佹洿鏀�/鍒犻櫎鎴愬姛锛�"; }catch (Throwable e){ @@ -2267,10 +2312,10 @@ } int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); - /*if (secret == 0 || !secretService.checkDataSecret(secret)) { + if (secret == 0 || !secretService.checkDataSecret(secret).getData()) { Integer userSecret = VciBaseUtil.getCurrentUserSecret(); cbo.setAttributeValue(SECRET_FIELD, String.valueOf((userSecret == null || userSecret == 0) ? UserSecretEnum.NONE.getValue() : userSecret)); - }*/ + } } catch (Throwable e) { log.error("璁剧疆榛樿鐨勫睘鎬х殑鍊奸敊璇�", e); } @@ -2519,11 +2564,11 @@ cbo.setAttributeValue(CODE_CLASSIFY_OID_FIELD,classifyFullInfo.getCurrentClassifyVO().getOid()); cbo.setAttributeValue(CODE_FULL_PATH_FILED,fullPath); int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); - /*if(secret == 0 || !secretService.checkDataSecret(secret) ){ + if(secret == 0 || !secretService.checkDataSecret(secret).getData() ){ Integer userSecret = VciBaseUtil.getCurrentUserSecret(); String secretValue= String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret); cbo.setAttributeValue(SECRET_FIELD,secretValue); - }*/ + } if(rowData.getStatus().equals(CodeDefaultLC.DISABLE.getValue())){//鍋滅敤 cbo.setLcStatus(CodeDefaultLC.DISABLE.getValue()); }else if(rowData.getStatus().equals(CodeDefaultLC.EDITING.getValue())){//缂栬緫 @@ -2617,11 +2662,11 @@ cbo.setAttributeValue(CODE_CLASSIFY_OID_FIELD,classifyFullInfo.getCurrentClassifyVO().getOid()); cbo.setAttributeValue(CODE_FULL_PATH_FILED,fullPath); //cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); - /*int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); - if(secret == 0 || !secretService.checkDataSecret(secret) ){ + int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); + if(secret == 0 || !secretService.checkDataSecret(secret).getData() ){ Integer userSecret = VciBaseUtil.getCurrentUserSecret(); cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret)); - }*/ + } }else{ //姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰� //cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath)); @@ -2674,10 +2719,10 @@ cbo.setAttributeValue(CODE_FULL_PATH_FILED,fullPath); //cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); - /*if(secret == 0 || !secretService.checkDataSecret(secret) ){ + if(secret == 0 || !secretService.checkDataSecret(secret).getData() ){ Integer userSecret = VciBaseUtil.getCurrentUserSecret(); cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret)); - }*/ + } }else{ //姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰� //cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath)); @@ -2954,21 +2999,35 @@ * @param cboList 鏁版嵁鐨勫垪琛� * @param errorMap 閿欒鐨勪俊鎭� */ - private void batchCheckIdExistOnOrder(CodeClassifyTemplateVO templateVO,List<ClientBusinessObject> cboList,Map<String ,String> errorMap){ + private void batchCheckIdExistOnOrder(CodeClassifyTemplateVO templateVO,List<ClientBusinessObject> cboList,Map<String ,String> errorMap) throws Throwable{ List<String> existIds = new ArrayList<>(); + String tableName =""; + try { + R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); + if(r.getCode()!=200) { + throw new Throwable(r.getMsg()); + } + BtmTypeVO btmTypeVO = r.getData(); + if (btmTypeVO == null) { + throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷瀵硅薄锛�"); + } + tableName = btmTypeVO.getTableName(); + if (StringUtils.isBlank(tableName)) { + throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷鐩稿叧鑱旂殑琛�"); + } + }catch (Throwable e){ + throw e; + } + String finalTableName = tableName; VciBaseUtil.switchCollectionForOracleIn(cboList).stream().forEach(cbos -> { Map<String, String> conditionMap = new HashMap<>(); conditionMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0])) + ")"); - R<BtmTypeVO> r= btmTypeClient.getDetail(templateVO.getBtmTypeId()); - BtmTypeVO btmTypeVO =r.getData(); - String tableName=btmTypeVO.getTableName(); - StringBuffer sb=new StringBuffer(); sb.append(" select id from "); - sb.append(tableName); + sb.append(finalTableName); sb.append(" where 1=1 "); - sb.append(" id in ("); + sb.append(" and id in ("); sb.append(VciBaseUtil.toInSql(cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0]))); sb.append(")"); List<String> idList= commonsMapper.selectById(sb.toString()); -- Gitblit v1.9.3