Procházet zdrojové kódy

部门费用管理-分拆 bug修改

24282 před 2 roky
rodič
revize
4a9a5071e8

+ 30 - 37
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountDeptRunningWaterDetailServiceImpl.java

@@ -1,29 +1,29 @@
 package com.fjhx.account.service.account.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.account.entity.account.dto.AccountDeptRunningWaterDetailDto;
+import com.fjhx.account.entity.account.dto.AccountDeptRunningWaterDetailSelectDto;
 import com.fjhx.account.entity.account.po.AccountDeptRunningWater;
 import com.fjhx.account.entity.account.po.AccountDeptRunningWaterDetail;
 import com.fjhx.account.entity.account.po.AccountRunningWater;
+import com.fjhx.account.entity.account.vo.AccountDeptRunningWaterDetailVo;
 import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
 import com.fjhx.account.mapper.account.AccountDeptRunningWaterDetailMapper;
 import com.fjhx.account.service.account.AccountDeptRunningWaterDetailService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.account.service.account.AccountDeptRunningWaterService;
 import com.fjhx.account.service.account.AccountRunningWaterService;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.account.entity.account.vo.AccountDeptRunningWaterDetailVo;
-import com.fjhx.account.entity.account.dto.AccountDeptRunningWaterDetailSelectDto;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.fjhx.account.entity.account.dto.AccountDeptRunningWaterDetailDto;
-import cn.hutool.core.bean.BeanUtil;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 
@@ -142,42 +142,35 @@ public class AccountDeptRunningWaterDetailServiceImpl extends ServiceImpl<Accoun
         this.removeById(id);
     }
 
-    //分拆功能 添加或者修改资金流水分拆部门表的数据
-    private void saveOrEditAccountDeptRunningWaterDetail(AccountRunningWaterVo accountRunningWaterVo,
-                                                         AccountDeptRunningWater accountDeptRunningWater,
-                                                         List<AccountDeptRunningWaterDetail> deptRunningWaterDetailList
-    ){
-        //如果存在部门-资金流水关联表的ID则修改
-        if (ObjectUtil.isNotEmpty(accountRunningWaterVo.getAccountDeptRunningWaterId())){
-            accountDeptRunningWater.setId(accountRunningWaterVo.getAccountDeptRunningWaterId());
-            accountDeptRunningWater.setType("20");
-            accountDeptRunningWaterService.updateById(accountDeptRunningWater);
-
-            //删除分拆部门表的数据
-            //获取到有参数中有分拆部门详情表的ID
-            List<Long> ids = deptRunningWaterDetailList.stream().map(deptRunningWaterDetail ->
-                    deptRunningWaterDetail.getId()).collect(Collectors.toList());
+    // 分拆功能 添加或者修改资金流水分拆部门表的数据
+    private void saveOrEditAccountDeptRunningWaterDetail(
+            AccountRunningWaterVo accountRunningWaterVo,
+            AccountDeptRunningWater accountDeptRunningWater,
+            List<AccountDeptRunningWaterDetail> deptRunningWaterDetailList) {
 
-            //删除数据库中不包含参数中有分拆部门详情表的ID的数据
-            this.remove(Wrappers.<AccountDeptRunningWaterDetail>lambdaQuery()
-                    .notIn(AccountDeptRunningWaterDetail::getId,ids).eq(AccountDeptRunningWaterDetail::getDeptRunningWaterId,
-                            accountRunningWaterVo.getAccountDeptRunningWaterId()));
+        Long accountDeptRunningWaterId = accountRunningWaterVo.getAccountDeptRunningWaterId();
 
-        }else {
+        // 如果存在部门-资金流水关联表的ID则修改
+        if (ObjectUtil.isNotEmpty(accountDeptRunningWaterId)) {
+            accountDeptRunningWater.setId(accountDeptRunningWaterId);
+            accountDeptRunningWater.setType("20");
+            accountDeptRunningWaterService.updateById(accountDeptRunningWater);
+        } else {
             accountDeptRunningWater.setRunningWaterId(accountRunningWaterVo.getId());
             accountDeptRunningWater.setType("20");
             accountDeptRunningWaterService.save(accountDeptRunningWater);
         }
-        //获取分拆部门详情中ID为null的数据
-        deptRunningWaterDetailList = deptRunningWaterDetailList.stream()
-                .filter(deptRunningWaterDetail->deptRunningWaterDetail.getId()==null)
-                .collect(Collectors.toList());
 
-        //添加资金流水分拆部门表中ID为null的数据
-        deptRunningWaterDetailList.forEach(deptRunningWaterDetail->deptRunningWaterDetail
-                .setDeptRunningWaterId(accountRunningWaterVo.getAccountDeptRunningWaterId()));
+        // 获取到有参数中有分拆部门详情表的ID
+        List<Long> ids = deptRunningWaterDetailList.stream().map(BaseIdPo::getId).filter(Objects::nonNull).collect(Collectors.toList());
+
+        // 删除数据库中不包含参数中有分拆部门详情表的ID的数据
+        this.remove(q -> q
+                .eq(AccountDeptRunningWaterDetail::getDeptRunningWaterId, accountDeptRunningWaterId)
+                .notIn(AccountDeptRunningWaterDetail::getId, ids));
 
-        this.saveBatch(deptRunningWaterDetailList);
+        deptRunningWaterDetailList.forEach(deptRunningWaterDetail -> deptRunningWaterDetail.setDeptRunningWaterId(accountDeptRunningWaterId));
+        this.saveOrUpdateBatch(deptRunningWaterDetailList);
     }
 
 }