Просмотр исходного кода

修复4811审核通过后的单据修改无效问题

seyason 1 год назад
Родитель
Сommit
b14423a5ce

+ 19 - 12
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java

@@ -109,6 +109,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
         ExpenseAuditSetting auditSetting = expenseAuditSettingMapper.selectById(user.getCompanyId());
 
 
+        //管理员审核权限,有该权限则可以直接修改已审核通过的
         List<SysRichFunction> functionDeptList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "费用审核");
         boolean isAuditor = functionDeptList.size() > 0;
         boolean isNew = false;
@@ -279,18 +280,24 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                 expenseItemService.remove(new QueryWrapper<ExpenseItem>().eq("expense_id", sheet.getId()));
                 expenseItemService.saveBatch(itemList);
             } else {
-                //已通过不能删除
-                QueryWrapper<ExpenseItem> queryWrapper = new QueryWrapper<ExpenseItem>().eq("expense_id", sheet.getId());
-                queryWrapper.eq("status", 0);
-                List<ExpenseItem> passList = expenseItemService.list(queryWrapper);
-                //去掉审核通过的
-                itemList = itemList.stream().filter(item->!passList.stream().anyMatch(p->p.getId().equals(item.getId()))).collect(Collectors.toList());
-                //设置为待审核状态
-                System.out.println("设置状态为待审核"+itemList.size());
-                itemList.forEach(item->item.setStatus(1));
-                expenseItemService.remove(new QueryWrapper<ExpenseItem>().eq("expense_id", sheet.getId()).ne("status", 0));
-                if (itemList.size() > 0) {
-                    expenseItemService.saveOrUpdateBatch(itemList);
+                if (isAuditor) {
+                    //有审核权限的人修改,直接修改
+                    expenseItemService.remove(new QueryWrapper<ExpenseItem>().eq("expense_id", sheet.getId()));
+                    expenseItemService.saveBatch(itemList);
+                } else {
+                    //已通过不能删除
+                    QueryWrapper<ExpenseItem> queryWrapper = new QueryWrapper<ExpenseItem>().eq("expense_id", sheet.getId());
+                    queryWrapper.eq("status", 0);
+                    List<ExpenseItem> passList = expenseItemService.list(queryWrapper);
+                    //去掉审核通过的
+                    itemList = itemList.stream().filter(item->!passList.stream().anyMatch(p->p.getId().equals(item.getId()))).collect(Collectors.toList());
+                    //设置为待审核状态
+                    System.out.println("设置状态为待审核"+itemList.size());
+                    itemList.forEach(item->item.setStatus(1));
+                    expenseItemService.remove(new QueryWrapper<ExpenseItem>().eq("expense_id", sheet.getId()).ne("status", 0));
+                    if (itemList.size() > 0) {
+                        expenseItemService.saveOrUpdateBatch(itemList);
+                    }
                 }
             }
         } else {