|
@@ -17,6 +17,12 @@
|
|
|
package org.springblade.manager.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import oracle.sql.BfileDBAccess;
|
|
|
+import org.springblade.core.secure.utils.AuthUtil;
|
|
|
+import org.springblade.core.tool.api.R;
|
|
|
+import org.springblade.manager.dto.WbsInfoDTO;
|
|
|
+import org.springblade.manager.entity.WbsTree;
|
|
|
import org.springblade.manager.mapper.WbsInfoMapper;
|
|
|
import org.springblade.manager.service.IWbsInfoService;
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
@@ -24,6 +30,7 @@ import org.springblade.manager.entity.WbsInfo;
|
|
|
import org.springblade.manager.vo.WbsInfoVO;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
@@ -34,8 +41,11 @@ import java.util.List;
|
|
|
* @since 2022-04-25
|
|
|
*/
|
|
|
@Service
|
|
|
+@AllArgsConstructor
|
|
|
public class WbsInfoServiceImpl extends BaseServiceImpl<WbsInfoMapper, WbsInfo> implements IWbsInfoService {
|
|
|
|
|
|
+ private final WbsTreeServiceImpl wbsTreeService;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<WbsInfo> selectWbsInfoPage(IPage<WbsInfo> page, WbsInfo wbsInfo) {
|
|
|
return page.setRecords(baseMapper.selectWbsInfoPage(page, wbsInfo));
|
|
@@ -48,4 +58,47 @@ public class WbsInfoServiceImpl extends BaseServiceImpl<WbsInfoMapper, WbsInfo>
|
|
|
return baseMapper.selectList(queryWrapper);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean submit(WbsInfoDTO wbsInfo) {
|
|
|
+ //先查找树下是否有根节点
|
|
|
+ WbsTree wbsTree1 = wbsTreeService.selectGenNodeByWbsId(wbsInfo.getId());
|
|
|
+ if (wbsTree1 != null) {
|
|
|
+ //修改WbsInfo树信息
|
|
|
+ baseMapper.updateById(wbsInfo);
|
|
|
+ //修改WbsTree表的根节点
|
|
|
+ int row = wbsTreeService.updateByCondition(wbsInfo.getId(), wbsInfo.getWbsName(), wbsInfo.getStatus());
|
|
|
+ if (row > 0) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //新增wbs树
|
|
|
+ int row = baseMapper.insert(wbsInfo);
|
|
|
+ if (row > 0) {
|
|
|
+ Long wbsId = wbsInfo.getId();
|
|
|
+ String nodeName = wbsInfo.getWbsName();
|
|
|
+ //初始化wbs树的根节点
|
|
|
+ WbsTree wbsTree = new WbsTree();
|
|
|
+ wbsTree.setWbsId(String.valueOf(wbsId));
|
|
|
+ wbsTree.setTenantId(AuthUtil.getTenantId());
|
|
|
+ wbsTree.setParentId(0L);
|
|
|
+ wbsTree.setAncestors("0");
|
|
|
+ wbsTree.setDeptCategory(1);
|
|
|
+ wbsTree.setDeptName(nodeName);
|
|
|
+ wbsTree.setFullName(nodeName);
|
|
|
+ wbsTree.setType(1);
|
|
|
+ boolean result2 = wbsTreeService.save(wbsTree);
|
|
|
+ if (result2) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public WbsInfo findById(Long id) {
|
|
|
+ return baseMapper.selectById2(id);
|
|
|
+ }
|
|
|
+
|
|
|
}
|