From 238121be19655f63a45fc9c9c3d864801eb4471b Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 24 四月 2024 12:44:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java | 100 ++++++++++++++++++++++++-------------------------
1 files changed, 49 insertions(+), 51 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 6e4f4f1..14524ab 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 {
@@ -369,7 +360,11 @@
List<CodeBasicSecVO> attrSecVOList = new ArrayList<>();
for (int i = 0; i < secVOList.size(); i++) {
CodeBasicSecVO secVO = secVOList.get(i);
- switchSecValue(secVO, secValueMap, classifyFullInfoBO, serialSecVOList, attrSecVOList, serialUnitList, secValueList);
+ try{
+ switchSecValue(secVO, secValueMap, classifyFullInfoBO, serialSecVOList, attrSecVOList, serialUnitList, secValueList);
+ }catch (Exception e){
+ throw new ServiceException("鐮佸�艰浆鎹㈡椂鍑虹幇閿欒锛屽師鍥狅細"+e.getMessage());
+ }
}
//澶勭悊灞炴�х爜娈靛拰娴佹按鐮佹
Map<String/**娴佹按鐮佹鐨勪富閿�**/, Map<String/**娴佹按渚濇嵁**/, String>> lastMaxSerialValueMap = new HashMap<>();
@@ -422,7 +417,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()));
@@ -433,7 +427,7 @@
.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CodeAllCode::getId))),
ArrayList::new));
- if( distinctCodeAllCOdes.size() != allCodeDOList.size() ){
+ if(distinctCodeAllCOdes.size() != allCodeDOList.size() ){
throw new ServiceException("缂栫爜鏁版嵁閲嶅锛屾棤娉曚繚瀛橈紝璇锋敞鎰忥紒");
}
QueryWrapper<CodeAllCode> wrapper = new QueryWrapper<>();
@@ -448,34 +442,29 @@
for (CodeAllCode codeAllCode : takeBack) {
codeAllCode.setTs(new Date());
codeAllCode.setLastModifyTime(new Date());
- codeAllCode.setLastModifier(AuthUtil.getUserId().toString());
- Iterator<CodeAllCode> iterator = allCodeDOList.iterator();
- while (iterator.hasNext()){
+ codeAllCode.setLastModifier(Func.isNotEmpty(user) ? user.getAccount():AuthUtil.getUserAccount());
+ for (int i = 0; i < allCodeDOList.size(); i++) {
+ if(codeAllCode.getId().equals(allCodeDOList.get(i).getId())){
+ codeAllCode.setCreateCodeOid(allCodeDOList.get(i).getCreateCodeOid());
+ codeAllCode.setLcStatus(allCodeDOList.get(i).getLcStatus());
+ allCodeDOList.remove(i);
+ }
+ }
+ /*while (iterator.hasNext()){
CodeAllCode next = iterator.next();
if(codeAllCode.getId().equals(next.getId())){
codeAllCode.setCreateCodeOid(next.getCreateCodeOid());
codeAllCode.setLcStatus(next.getLcStatus());
//iterator.remove();
}
- }
+ }*/
}
if(takeBack.size()>0){
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;
}
@@ -523,8 +512,6 @@
});
}
}
-
-
/**
* 杞崲娴佹按鐮佹鐨勫��
@@ -637,8 +624,6 @@
}
}
}
-
-
/**
* 杞崲娴佹按鐮佹鐨勫��
@@ -903,7 +888,7 @@
case CODE_VARIABLE_SEC:
//鍙彉鐮佹锛屾槸鍦ㄩ〉闈笂杈撳叆鍐呭
if (secValue.length() > VciBaseUtil.getInt(secVO.getCodeSecLength())) {
- throw new VciBaseException("銆恵0}銆戣繖涓爜娈垫槸鍙彉鐮佹锛屼絾鏄幇鍦ㄨ緭鍏ョ殑鐮佸�肩殑闀垮害({1})瓒呰繃浜嗚瀹氱殑闀垮害{2}", new String[]{secVO.getName(), String.valueOf(secValue.length()), secVO.getCodeSecLength()});
+ throw new ServiceException(String.format("銆恵%s}銆戣繖涓爜娈垫槸鍙彉鐮佹锛屼絾鏄幇鍦ㄨ緭鍏ョ殑鐮佸�肩殑闀垮害({%s})瓒呰繃浜嗚瀹氱殑闀垮害{%s}", secVO.getName(), secValue.length(), secVO.getCodeSecLength()));
}
OsCodeFillTypeEnum fillTypeEnum = OsCodeFillTypeEnum.forValue(secVO.getCodeFillType());
secValue = fillString(VciBaseUtil.getInt(secVO.getCodeSecLength()), fillTypeEnum, secValue, secVO.getCodeFillSeparator());
@@ -1191,10 +1176,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,14 +1218,19 @@
AtomicReference<String> serialUnitString= new AtomicReference<>("");
for (int j = 0; j < serialSecVOList.size(); j++) {
CodeBasicSecVO secVO = serialSecVOList.get(j);
- if(lastMaxSerialValueMap.containsKey(secVO.getOid())){
- Map<String/**娴佹按渚濇嵁**/, String> serialValueMap= lastMaxSerialValueMap.get(secVO.getOid());
+ if(lastMaxSerialValueMap.containsKey(secVO.getOid())){//姝や负鏈�鍚庨渶瑕佸瓨鍏ユ祦姘翠緷璧栫殑鏈�澶ф祦姘�
+ Map<String/**娴佹按渚濇嵁**/, String> serialValueMap = lastMaxSerialValueMap.get(secVO.getOid());
serialValueMap.forEach((maxSerialUnitString,serialValue)->{
if(StringUtils.isNotBlank(serialValue)){
serialUnitString.set(maxSerialUnitString);
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));
@@ -1277,14 +1269,21 @@
codeAllCode.setLastModifyTime(new Date());
codeAllCode.setLastModifier(AuthUtil.getUserId().toString());
Iterator<CodeAllCode> iterator = allCodeDOList.iterator();
- while (iterator.hasNext()){
+ for (int i = 0; i < allCodeDOList.size(); i++) {
+ if(codeAllCode.getId().equals(allCodeDOList.get(i).getId())){
+ codeAllCode.setCreateCodeOid(allCodeDOList.get(i).getCreateCodeOid());
+ codeAllCode.setLcStatus(allCodeDOList.get(i).getLcStatus());
+ allCodeDOList.remove(i);
+ }
+ }
+ /*while (iterator.hasNext()){
CodeAllCode next = iterator.next();
if(codeAllCode.getId().equals(next.getId())){
codeAllCode.setCreateCodeOid(next.getCreateCodeOid());
codeAllCode.setLcStatus(next.getLcStatus());
//iterator.remove();
}
- }
+ }*/
}
if(takeBack.size()>0){
codeAllCodeService.updateBatchById(takeBack);
@@ -1293,7 +1292,6 @@
mdmEngineService.insertBatchByType(dataCBOList.get(0).getBtmname(),dataCBOList);
return codeList;
}
-
/**
* 杞崲鐮佸�肩殑鍐呭
--
Gitblit v1.9.3