ludc
2023-11-17 f8722a3c6d5a3e50e5c5066b1db085179245e4bc
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -61,6 +62,7 @@
import org.springframework.beans.BeanUtils;
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;
@@ -179,6 +181,7 @@
    * @return 执行结果
    */
   @Override
   @Transactional(rollbackFor = Exception.class)
   public R editSave(CodeClassify codeClassifyEntity) {
      if(codeClassifyEntity == null || codeClassifyEntity.getOid() == null){
         return R.fail("传入数据不能为空!");
@@ -196,15 +199,28 @@
      codeClassifyEntity.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount()));
      codeClassifyEntity.setLastModifyTime(new Date());
      codeClassifyEntity.setTs(new Date());
      int insertNumber = codeClassifyMapper.updateById(codeClassifyEntity);
      int updateEntity = codeClassifyMapper.updateById(codeClassifyEntity);
      // 如果不是叶子结点,则需要修改其下所有的子分类,是否参与关键属性校验的值
      String oid = codeClassifyEntity.getOid();
      List<CodeClassify> codeClassifies = codeClassifyMapper.selectStartWithCurrentOid(oid);
      int updateAttr = 0;
      // 不为空就需要该当前分类下所有子分类的isParticipateCheck
      if(!codeClassifies.isEmpty()){
         List<String> oids = codeClassifies.stream().map(CodeClassify::getOid).collect(Collectors.toList());
         updateAttr = codeClassifyMapper.update(
            null,
            Wrappers.<CodeClassify>update()
               .lambda().in(CodeClassify::getOid, oids)
               .set(CodeClassify::getIsParticipateCheck, codeClassifyEntity.getIsParticipateCheck())
         );
      }
//         //处理数据集成逻辑,成功后执行集成第一步,分类数据特殊处理。只有启用状态的分类才推送
//         if(FRAMEWORK_DATA_ENABLED.equals(codeClassifyDO.getLcStatus()));
//         {
//             codeDuckingServiceI.insertCache1(CACHE_TYPE_CLASSIFY_EDIT,FRAMEWORK_DATA_ENABLED,DOCKING_DEFAULT_CLASSIFY, DOCKING_DEFAULT_CLASSIFYOID, codeClassifyDO.getOid(), codeClassifyDTO.getTs());
//         }
      return R.status(SqlHelper.retBool(insertNumber));
//      return BaseResult.success(codeClassifyDO2VO(codeClassifyDO));
      return R.status(SqlHelper.retBool(updateAttr) & SqlHelper.retBool(updateEntity));
   }
   /**
@@ -644,6 +660,22 @@
      List<CodeClassifyVO> voList = codeClassifyDO2VOs(codeClassifyList);
      return voList;
   }
   /**
    * 根据顶层节点oid查询所有除当前节点以外所有不参与校验的分类oid
    * @param topOid
    * @param currentOid
    * @return
    */
   @Override
   public String selectLeafByParentClassifyOid(String topOid, String currentOid) {
      List<CodeClassify> codeClassifies = codeClassifyMapper.selectLeafByParentClassifyOid(topOid, currentOid);
      if(codeClassifies.isEmpty()){
         return "";
      }
      String oids = codeClassifies.stream().map(CodeClassify::getOid).collect(Collectors.joining(","));
      return oids;
   }
   /***
@@ -1357,4 +1389,6 @@
      return codeClassifyMapper.selectCount(wrapper).intValue();
   }
}