ludc
2024-01-24 5ca05f604876cacca45e3bdfa9f54a997653da90
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 {
@@ -303,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 -> {
@@ -331,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);
@@ -349,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 {
@@ -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;
   }