xuhy
2025-03-07 193945d70b561bc96bb608b47b9b2e4dba3b45b2
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TBillController.java
@@ -6,16 +6,15 @@
import com.ruoyi.common.constant.DictConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.CodeGenerateUtils;
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TBillDto;
import com.ruoyi.system.dto.TInvoiceDTO;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TBillQuery;
import com.ruoyi.system.service.TBillDetailService;
import com.ruoyi.system.service.TBillService;
import com.ruoyi.system.service.TInvoiceService;
import com.ruoyi.system.service.TInvoiceToBillService;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TBillVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -23,6 +22,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
@@ -44,18 +45,41 @@
    @Autowired
    TBillDetailService billDetailService;
    @Autowired
    TContractService contractService;
    @Autowired
    THouseService houseService;
    @Autowired
    TInvoiceService invoiceService;
    @Autowired
    TInvoiceToBillService invoiceToBillService;
    @Autowired
    TokenService tokenService;
    @Autowired
    TTenantService tenantService;
    @ApiOperation(value = "缴费账单查询分页列表")
    @PostMapping("list")
    public R<PageInfo<TBillDto>> list(@RequestBody TBillQuery query){
        if (StringUtils.isEmpty(query.getUserId())){
            throw new ServiceException("用户ID不能为空");
        }
        String userId = tokenService.getLoginUserApplet().getUserId();
        query.setUserId(userId);
        PageInfo<TBillDto> pageInfo = tBillService.queryPage(query);
        return R.ok(pageInfo);
    }
    public static void main(String[] args) {
        LocalDateTime localDateTime1 = LocalDateTime.now().withYear(2025).withMonth(11).withDayOfMonth(1);
        LocalDateTime localDateTime2 = LocalDateTime.now().withYear(2025).withMonth(11).withDayOfMonth(28);
        long allDays = ChronoUnit.DAYS.between(localDateTime1, localDateTime2);
        System.err.println(allDays);
    }
    @ApiOperation(value = "缴费账单查询列表")
    @PostMapping("/getBillIds")
    public R<List<String>> getBillIds(@RequestBody TBillQuery query){
        String userId = tokenService.getLoginUserApplet().getUserId();
        query.setUserId(userId);
        List<String> billIds = tBillService.getBillIds(query);
        return R.ok(billIds);
    }
    @ApiOperation(value = "查看缴费账单详情")
@@ -70,14 +94,33 @@
                    .eq(TBillDetail::getBillId, id));
            billVO.setBillDetailList(list);
        }
        // 查询合同信息
        contractService.lambdaQuery().eq(TContract::getId, bill.getContractId()).oneOpt().ifPresent(contract -> {
            // 查询房屋信息
            billVO.setHouse(houseService.getById(contract.getHouseId()));
            billVO.setMonthRent(contract.getMonthRent());
            billVO.setPayType(contract.getPayType());
            billVO.setDeposit(contract.getDeposit());
            billVO.setPartyOnePerson(contract.getPartyOnePerson());
            billVO.setPartyOnePhone(contract.getPartyOnePhone());
            billVO.setConcatStartTime(contract.getStartTime());
            billVO.setConcatEndTime(contract.getEndTime());
        });
        billVO.setBillType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_BILL_TYPE,billVO.getBillType()));
        billVO.setPayFeesStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_PAY_FEES_STATUS,billVO.getPayFeesStatus()));
//        billVO.setPayFeesStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_PAY_FEES_STATUS,billVO.getPayFeesStatus()));
        return R.ok(billVO);
    }
    @ApiOperation(value = "缴费账单开票")
    @PostMapping(value = "/invoice")
    public R<String> invoice(@RequestBody TInvoiceDTO dto) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        dto.setApplyName(tenantService.getById(userId).getResidentName());
        String code;
        do {
            code = CodeGenerateUtils.generateVolumeSn();
        } while (invoiceService.count(Wrappers.lambdaQuery(TInvoice.class).eq(TInvoice::getInvoiceNumber, code)) > 0);
        dto.setInvoiceNumber(CodeGenerateUtils.generateVolumeSn());
        // 添加开票信息
        invoiceService.save(dto);
@@ -94,5 +137,15 @@
        return R.ok();
    }
    @ApiOperation(value = "缴费账单开票列表")
    @PostMapping(value = "/invoiceList")
    public R<PageInfo<TBillDto>> invoiceList(@RequestBody TBillQuery query) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        query.setUserId(userId);
        PageInfo<TBillDto> pageInfo = tBillService.invoiceList(query);
        return R.ok(pageInfo);
    }
}