Procházet zdrojové kódy

新增
1、新增后台长者删除固定费用接口
2、新增后台获取长者所有固定费用接口
3、新增后台长者更新固定费用接口

liangwenxuan před 3 dny
rodič
revize
d191b464d8

+ 23 - 40
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/ExpenseController.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyFixedExpenseAppendReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ExpenseRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ExpenseSaveReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.ExpenseItemDO;
 import cn.iocoder.yudao.module.system.service.biz.ExpenseService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -18,6 +19,8 @@ import javax.validation.Valid;
 import org.springframework.validation.annotation.Validated;
 import io.swagger.v3.oas.annotations.tags.Tag;
 
+import java.util.List;
+
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 
 
@@ -66,46 +69,26 @@ public class ExpenseController {
         return success(true);
     }
 
+    @PostMapping("/deleteExpenseItems")
+    @Operation(summary = "长者删除固定费用")
+    @TenantIgnore
+    public CommonResult<Boolean> deleteExpenseItems(@RequestBody List<Long> expenseItemIdList) {
+        expenseService.deleteExpenseItems(expenseItemIdList);
+        return success(true);
+    }
 
-//
-//    @PutMapping("/update")
-//    @Operation(summary = "更新长者费用记录")
-//    @PreAuthorize("@ss.hasPermission('elderly:expense:update')")
-//    public CommonResult<Boolean> updateExpense(@Valid @RequestBody ExpenseSaveReqVO updateReqVO) {
-//        expenseService.updateExpense(updateReqVO);
-//        return success(true);
-//    }
-//
-//    @DeleteMapping("/delete")
-//    @Operation(summary = "删除长者费用记录")
-//    @Parameter(name = "id", description = "编号", required = true)
-//    @PreAuthorize("@ss.hasPermission('elderly:expense:delete')")
-//    public CommonResult<Boolean> deleteExpense(@RequestParam("id") Long id) {
-//        expenseService.deleteExpense(id);
-//        return success(true);
-//    }
-//
-
-//
-//    @GetMapping("/page")
-//    @Operation(summary = "获得长者费用记录分页")
-//    @PreAuthorize("@ss.hasPermission('elderly:expense:query')")
-//    public CommonResult<PageResult<ExpenseRespVO>> getExpensePage(@Valid ExpensePageReqVO pageReqVO) {
-//        PageResult<ExpenseDO> pageResult = expenseService.getExpensePage(pageReqVO);
-//        return success(BeanUtils.toBean(pageResult, ExpenseRespVO.class));
-//    }
-//
-//    @GetMapping("/export-excel")
-//    @Operation(summary = "导出长者费用记录 Excel")
-//    @PreAuthorize("@ss.hasPermission('elderly:expense:export')")
-//    @ApiAccessLog(operateType = EXPORT)
-//    public void exportExpenseExcel(@Valid ExpensePageReqVO pageReqVO,
-//              HttpServletResponse response) throws IOException {
-//        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-//        List<ExpenseDO> list = expenseService.getExpensePage(pageReqVO).getList();
-//        // 导出 Excel
-//        ExcelUtils.write(response, "长者费用记录.xls", "数据", ExpenseRespVO.class,
-//                        BeanUtils.toBean(list, ExpenseRespVO.class));
-//    }
+    @GetMapping("/getExpenseItemsByElderId")
+    @Operation(summary = "获取长者所有固定费用")
+    @TenantIgnore
+    public CommonResult<List<ExpenseItemDO>> getExpenseItemsByElderId(@RequestParam("elderId") Long elderId) {
+        return success(expenseService.getExpenseItemsByElderId(elderId));
+    }
 
+    @PostMapping("/updateExpenseItems")
+    @Operation(summary = "长者更新固定费用")
+    @TenantIgnore
+    public CommonResult<Boolean> updateExpenseItems(@RequestBody ExpenseItemDO updateItem){
+        expenseService.updateExpenseItems(updateItem);
+        return success(true);
+    }
 }

+ 10 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ExpenseService.java

@@ -4,6 +4,10 @@ package cn.iocoder.yudao.module.system.service.biz;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyFixedExpenseAppendReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ExpenseRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ExpenseSaveReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.ExpenseItemDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.ExpenseOrderItemDO;
+
+import java.util.List;
 
 /**
  * 长者费用记录 Service 接口
@@ -20,4 +24,10 @@ public interface ExpenseService {
     void renewContract(ExpenseSaveReqVO createReqVO);
 
     void appendFixedExpense(ElderlyFixedExpenseAppendReqVO reqVO);
+
+    void deleteExpenseItems(List<Long> expenseItemIdList);
+
+    List<ExpenseItemDO> getExpenseItemsByElderId(Long elderId);
+
+    void updateExpenseItems(ExpenseItemDO updateItem);
 }

+ 27 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ExpenseServiceImpl.java

@@ -611,6 +611,33 @@ public class ExpenseServiceImpl implements ExpenseService {
         reconcileCurrentMonthBillAfterAppend(reqVO.getElderId(), tenantId, item, targetBillingMonth, startDate, endDate);
     }
 
+    @Override
+    public void deleteExpenseItems(List<Long> expenseItemIdList){
+        expenseItemMapper.deleteBatchIds(expenseItemIdList);
+    }
+
+    @Override
+    @Transactional
+    public List<ExpenseItemDO> getExpenseItemsByElderId(Long elderId){
+        List<ExpenseDO> expenseDOS = expenseMapper.selectList(new LambdaQueryWrapperX<ExpenseDO>().eq(ExpenseDO::getElderId, elderId));
+        List<Long> expenseIds = expenseDOS.stream().map(ExpenseDO::getId).collect(Collectors.toList());
+        return expenseItemMapper.selectList(new LambdaQueryWrapperX<ExpenseItemDO>().in(ExpenseItemDO::getExpenseId, expenseIds));
+    }
+
+    @Override
+    @Transactional
+    public void updateExpenseItems(ExpenseItemDO updateItem){
+        ExpenseItemDO originItem = expenseItemMapper.selectById(updateItem.getId());
+        // 差额
+        BigDecimal deltaAmount = updateItem.getActualAmount().subtract(originItem.getActualAmount());
+        // 更新费用金额
+        ExpenseDO expenseDO = expenseMapper.selectById(updateItem.getExpenseId());
+        expenseDO.setTotalAmount(expenseDO.getTotalAmount().add(deltaAmount));
+        expenseMapper.updateById(expenseDO);
+        // 更新费用明细
+        expenseItemMapper.updateById(updateItem);
+    }
+
     /**
      * 追加固定费项后,对当月账单进行补差(新增一条账单明细)
      */