From 1c3919f11f5eb5b3c2ba74d95ca6fcdf11ce9bf9 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 25 一月 2024 10:17:35 +0800 Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java | 60 +++++++++++++++++++++++------------------------------------- 1 files changed, 23 insertions(+), 37 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java index 24bdc0c..30c8413 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java @@ -93,10 +93,6 @@ @Autowired private FormulaServiceImpl formulaService; - // 娉ㄥ叆浜嬪姟绠$悊鍣� -// @Autowired -// private TransactionTemplate transactionTemplate; - @Override @Transactional(rollbackFor = Exception.class) public List<String> productCodeAndSaveData(CodeClassifyFullInfoBO classifyFullInfoBO, CodeClassifyTemplateVO templateVO, CodeRuleVO ruleVO, List<CodeOrderSecDTO> secDTOList, List<BaseModel> dataCBOList,BladeUser user) throws Exception { @@ -215,6 +211,7 @@ String unFillSerial =serialUnFileStringList.size()==1?serialUnFileStringList.get(0)+ SERIAL_VALUE_SPACE:serialUnFileStringList.stream().collect(Collectors.joining(SERIAL_VALUE_SPACE)); allCodeDO.setUnFillSerial(unFillSerial); allCodeDO.setLcStatus(cbo.getLcStatus()); + allCodeDO.setLctid("codeAllCodeLC"); allCodeDO.setCodeDelimit(codeValueList.stream().collect(Collectors.joining(SERIAL_VALUE_SPACE)));//娣诲姞閾炬帴绗� allCodeDOList.add(allCodeDO); }); @@ -302,10 +299,6 @@ if(!CollectionUtils.isEmpty(editCodeDOs)){ codeAllCodeService.updateBatchById(editCodeDOs); } - // 鑾峰彇浜嬪姟瀹氫箟 - //DefaultTransactionDefinition def = new DefaultTransactionDefinition(); - // 寮�濮嬩簨鍔� - //TransactionStatus status = transactionTemplate.getTransactionManager().getTransaction(def); if(!CollectionUtils.isEmpty(addCodeDOs)){ Map<String, String> statusMap = addCodeDOs.stream().collect(Collectors.toMap(s -> s.getOid(), s -> s.getLcStatus())); addCodeDOs.stream().filter(s -> StringUtils.equalsIgnoreCase("codeallcode",s.getBtmname())).forEach(s -> { @@ -330,17 +323,24 @@ for (CodeAllCode codeAllCode : takeBack) { codeAllCode.setTs(new Date()); codeAllCode.setLastModifyTime(new Date()); - codeAllCode.setLastModifier(AuthUtil.getUserId().toString()); - Iterator<CodeAllCode> iterator = addCodeDOs.iterator(); + codeAllCode.setLastModifier(Func.isNotEmpty(user) ? user.getAccount():AuthUtil.getUserAccount()); + for (int i = 0; i < addCodeDOs.size(); i++) { + if(codeAllCode.getId().equals(addCodeDOs.get(i).getId())){ + codeAllCode.setCreateCodeOid(addCodeDOs.get(i).getCreateCodeOid()); + codeAllCode.setLcStatus(addCodeDOs.get(i).getLcStatus()); + addCodeDOs.remove(i); + } + } + /*Iterator<CodeAllCode> iterator = addCodeDOs.iterator(); while (iterator.hasNext()){ CodeAllCode next = iterator.next(); if(codeAllCode.getId().equals(next.getId())){ codeAllCode.setCreateCodeOid(next.getCreateCodeOid()); codeAllCode.setLcStatus(next.getLcStatus()); // TODO: 杩欏効鍏堟殏鏃舵敞閲婃帀锛屾病鐪嬫噦杩欏効涓轰粈涔堣杩欐牱鍋氾紝瀵艰嚧鎶ラ敊 - //iterator.remove(); + iterator.remove(); } - } + }*/ } if(takeBack.size()>0){ codeAllCodeService.updateBatchById(takeBack); @@ -348,16 +348,7 @@ codeAllCodeService.saveBatch(addCodeDOs); } - -// try { mdmEngineService.insertBatchByType(dataCBOList.get(0).getBtmname(),dataCBOList); - // 鎻愪氦浜嬪姟 - //transactionTemplate.getTransactionManager().commit(status); -// }catch (Exception e){ -// // 鍑虹幇寮傚父鏃跺洖婊氫簨鍔� -// transactionTemplate.getTransactionManager().rollback(status); -// } - } return codeList; }else { @@ -422,7 +413,6 @@ allCode -> {DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCode,"codeallcode",user);allCode.setLctid("codeAllCodeLC");} ); - Map<String, String> statusMap = allCodeDOList.stream().collect(Collectors.toMap(s -> s.getOid(), s -> s.getLcStatus())); allCodeDOList.stream().filter(s -> StringUtils.equalsIgnoreCase("codeallcode",s.getBtmname())).forEach(s -> { s.setLcStatus(statusMap.get(s.getOid())); @@ -463,19 +453,8 @@ codeAllCodeService.updateBatchById(takeBack); } codeAllCodeService.saveBatch(allCodeDOList); -// iCodeWupinService.saveBatch(dataCBOList); mdmEngineService.insertBatchByType(dataCBOList.get(0).getBtmname(),dataCBOList); -// batchCBO.getCreateCbos().stream().filter(s -> StringUtils.equalsIgnoreCase("codeallcode",s.getBtmName())).forEach(s -> { -// s.setLcStatus(statusMap.get(s.getOid())); -// try { -// s.setAttributeValue("lcstatus",statusMap.get(s.getOid())); -// } catch (VCIError e) { -// e.printStackTrace(); -// } -// }); } - // WebUtil.setPersistence(true); - // boService.persistenceBatch(batchCBO); return codeList; } @@ -928,7 +907,7 @@ * @param secValue 鐮佸�� * @return */ - private String joinPreffixAndSuffix(CodeBasicSecVO secVO, String secValue){ + public String joinPreffixAndSuffix(CodeBasicSecVO secVO, String secValue){ StringBuilder joinSecValue = new StringBuilder(); // 鎷兼帴鍓嶇紑 if (Func.isNotEmpty(secVO.getPrefixCode()) && Func.isNotEmpty(secValue)) { @@ -1191,10 +1170,12 @@ switchSecValueBZ(secVO, secValueMap, classifyFullInfoBO, serialSecVOList, attrSecVOList, serialUnitList, secValueList); //鍒嗘瀛樺偍娴佹按渚濊禆 if(secVO.getSecType().equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())){ + int finalI = i; + final int[] index = {0}; List<String> newSerialUnitList= serialUnitList.stream().filter(secValueStr -> { - return !secValueStr.equals("${"+secVO.getOid()+"}"); + return index[0]++< finalI;//闄ゅ幓娴佹按鐨� }).collect(Collectors.toList()); - String serialUnitString = serialUnitList.size() == 0 ? EMPTY_SERIAL_UNIT : newSerialUnitList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE)); + String serialUnitString = newSerialUnitList.size() == 0 ? EMPTY_SERIAL_UNIT : newSerialUnitList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE)); secOdserialUnitMap.put(secVO.getOid(),serialUnitString); } } @@ -1231,7 +1212,7 @@ AtomicReference<String> serialUnitString= new AtomicReference<>(""); for (int j = 0; j < serialSecVOList.size(); j++) { CodeBasicSecVO secVO = serialSecVOList.get(j); - if(lastMaxSerialValueMap.containsKey(secVO.getOid())){ + if(lastMaxSerialValueMap.containsKey(secVO.getOid())){//姝や负鏈�鍚庨渶瑕佸瓨鍏ユ祦姘翠緷璧栫殑鏈�澶ф祦姘� Map<String/**娴佹按渚濇嵁**/, String> serialValueMap= lastMaxSerialValueMap.get(secVO.getOid()); serialValueMap.forEach((maxSerialUnitString,serialValue)->{ if(StringUtils.isNotBlank(serialValue)){ @@ -1239,6 +1220,11 @@ sb.append(serialValue).append(SERIAL_VALUE_SPACE); } }); + }else{ + if(secValueMap.containsKey(secVO.getOid())) {//浼佷笟鏍囧噯澶勭悊淇椤哄簭鍙峰凡缁忓瓨鍦ㄧ殑鏁版嵁鍒欎笉闇�瑕佸姩娴佹按渚濊禆琛ㄧ殑鏁版嵁 + serialUnitString.set(secOdserialUnitMap.get(secVO.getOid())); + sb.append(secValueMap.get(secVO.getOid())).append(SERIAL_VALUE_SPACE); + } } } String codeDelimiter=thisSecValueList.stream().collect(Collectors.joining(SERIAL_VALUE_SPACE)); -- Gitblit v1.9.3