Browse Source

费用报销单据导出修改

yusm 1 year ago
parent
commit
319c6b67e5

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ExpenseSheetController.java

@@ -118,7 +118,7 @@ public class ExpenseSheetController {
     }
 
     @RequestMapping("/exportList")
-    public HttpRespMsg exportList(ExpenseSheet sheet,String startDate, String endDate) {
+    public HttpRespMsg exportList(ExpenseSheet sheet,Integer projectId ,String startDate, String endDate) {
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部报销单");
@@ -127,7 +127,7 @@ public class ExpenseSheetController {
             sheet.setOwnerId(user.getId());
         }
         sheet.setCompanyId(user.getCompanyId());
-        return expenseSheetService.exportList(sheet, startDate, endDate);
+        return expenseSheetService.exportList(sheet,projectId, startDate, endDate);
     }
 
     @RequestMapping("/editSendExpense")

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ExpenseSheetService.java

@@ -33,7 +33,7 @@ public interface ExpenseSheetService extends IService<ExpenseSheet> {
 
     HttpRespMsg importData(HttpServletRequest request, MultipartFile[] files);
 
-    HttpRespMsg exportList(ExpenseSheet sheet, String startDate, String endDate);
+    HttpRespMsg exportList(ExpenseSheet sheet,Integer projectId, String startDate, String endDate);
 
     HttpRespMsg approveSingleProject(Integer id);
 

+ 17 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java

@@ -1097,7 +1097,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
      * @return
      */
     @Override
-    public HttpRespMsg exportList(ExpenseSheet sheet, String startDate, String endDate) {
+    public HttpRespMsg exportList(ExpenseSheet sheet,Integer projectId, String startDate, String endDate) {
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", sheet.getCompanyId()));
         QueryWrapper<ExpenseSheet> queryWrapper = new QueryWrapper<ExpenseSheet>();
         queryWrapper.eq("company_id", sheet.getCompanyId()).orderByDesc("id");
@@ -1146,7 +1146,19 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
         List<Map> mapList=new ArrayList<>();
         for (ExpenseSheet record : records) {
             Map map=new HashMap();
-            List<ExpenseItem> expenseItems = expenseItemList.stream().filter(el -> el.getExpenseId().equals(record.getId())).collect(Collectors.toList());
+            List<ExpenseItem> expenseItems =new ArrayList<>();
+            if (projectId!=null){
+                expenseItems=expenseItemList.stream()
+                        .filter(el -> Optional.ofNullable(el.getExpenseId()).equals(Optional.ofNullable(record.getId())))
+                        .filter(el -> Optional.ofNullable(el.getProjectId()).map(p -> p.equals(projectId)).orElse(false))
+                        .collect(Collectors.toList());
+            }else {
+                expenseItems=expenseItemList.stream().filter(el -> el.getExpenseId().equals(record.getId())).collect(Collectors.toList());
+            }
+            double amount = 0.0;
+            if (expenseItems.size()>0){
+                amount=expenseItems.stream().mapToDouble(item -> Optional.ofNullable(item.getAmount()).orElse(0.0)).sum();
+            }
             map.put("size",expenseItems.size());
             mapList.add(map);
             for (ExpenseItem expenseItem : expenseItems) {
@@ -1157,10 +1169,12 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                     item.add(record.getOwnerName());
                 }
                 item.add(record.getCreateDate()==null?"":record.getCreateDate()+"");
+
                 item.add(record.getTicketNum()==null?"0":record.getTicketNum()+"");
                 Optional<ExpenseMainType> first = mainTypes.stream().filter(ms -> ms.getId().equals(record.getType())).findFirst();
                 item.add(first.isPresent()?first.get().getName():"");
-                item.add(record.getTotalAmount()==null?"0":record.getTotalAmount()+"");
+//                item.add(record.getTotalAmount()==null?"0":record.getTotalAmount()+"");
+                item.add(amount+"");
                 item.add(record.getRemark()==null?"":record.getRemark());
                 switch (expenseItem.getStatus()){
                     case 0: