MrShi
2025-02-07 364d3221b9a8e6dd3a19701d30c4dc4239ef8abf
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
@@ -2,14 +2,19 @@
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.dto.YwSmsEmailBillCallDTO;
import com.doumee.dao.business.model.YwContractBill;
import com.doumee.dao.business.vo.YwContractBillCallDataVO;
import com.doumee.dao.business.vo.YwContractBillDataVO;
import com.doumee.service.business.YwContractBillService;
import com.doumee.service.business.impl.SmsEmailServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,11 +36,15 @@
    @Autowired
    private YwContractBillService ywContractBillService;
    @Autowired
    private SmsEmailServiceImpl smsEmailService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @CloudRequiredPermission("business:ywcontractbill:create")
    public ApiResponse create(@RequestBody YwContractBill ywContractBill,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ywContractBill.setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(ywContractBillService.create(ywContractBill));
    }
@@ -43,7 +52,7 @@
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:ywcontractbill:delete")
    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ywContractBillService.deleteById(id);
        ywContractBillService.deleteById(id,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -56,7 +65,7 @@
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        ywContractBillService.deleteByIdInBatch(idList);
        ywContractBillService.deleteByIdInBatch(idList,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -64,6 +73,7 @@
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:ywcontractbill:update")
    public ApiResponse updateById(@RequestBody YwContractBill ywContractBill,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ywContractBill.setLoginUserInfo(this.getLoginUser(token));
        ywContractBillService.updateById(ywContractBill);
        return ApiResponse.success(null);
    }
@@ -72,13 +82,34 @@
    @PostMapping("/page")
    @CloudRequiredPermission("business:ywcontractbill:query")
    public ApiResponse<PageData<YwContractBill>> findPage (@RequestBody PageWrap<YwContractBill> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(ywContractBillService.findPage(pageWrap));
    }
    @ApiOperation("逾期账单")
    @PostMapping("/findPageForOverdue")
    @CloudRequiredPermission("business:ywcontractbill:query")
    public ApiResponse<PageData<YwContractBill>> findPageForOverdue (@RequestBody PageWrap<YwContractBill> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(ywContractBillService.findPageForOverdue(pageWrap));
    }
    @ApiOperation("可退款账单")
    @PostMapping("/getCanBackBill")
    @CloudRequiredPermission("business:ywcontractbill:query")
    public ApiResponse<List<YwContractBill>> getCanBackBill (@RequestBody YwContractBill ywContractBill,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywContractBillService.getCanBackBill(ywContractBill));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:ywcontractbill:exportExcel")
    public void exportExcel (@RequestBody PageWrap<YwContractBill> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
        ExcelExporter.build(YwContractBill.class).export(ywContractBillService.findPage(pageWrap).getRecords(), "运维合同账单信息表", response);
    }
@@ -86,6 +117,50 @@
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:ywcontractbill:query")
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywContractBillService.findById(id));
        return ApiResponse.success(ywContractBillService.getDetail(id));
    }
    @LoginNoRequired
    @ApiOperation("生成账单编号")
    @GetMapping("/dealDayBillCode")
    public ApiResponse dealDayBillCode() {
        ywContractBillService.dealDayBillCode();
        return ApiResponse.success("生成成功");
    }
    @ApiOperation("获取待处理账单")
    @GetMapping("/getWaitDealList")
    @CloudRequiredPermission("business:ywcontractbill:query")
    public ApiResponse<YwContractBillDataVO> getWaitDealList(@RequestParam Integer contractId,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywContractBillService.getWaitDealList(contractId));
    }
    @ApiOperation("获取批量催缴数据")
    @PostMapping("/getNoticeCustomerData")
    @CloudRequiredPermission("business:ywcontractbill:query")
    public ApiResponse<List<YwContractBillCallDataVO>> getNoticeCustomerData(@RequestBody List<Integer> billIds,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywContractBillService.getNoticeCustomerData(billIds));
    }
    @ApiOperation("下载催费文件")
    @PostMapping("/downloadCallFeeDoc")
    @CloudRequiredPermission("business:ywcontractbill:query")
    public void downloadCallFeeDoc(@RequestBody List<Integer> billIds,@RequestHeader(Constants.HEADER_USER_TOKEN) String token,HttpServletResponse response) {
        ywContractBillService.downloadCallFeeDoc(billIds,getLoginUser(token),response);
    }
    @ApiOperation("发送短信与邮件")
    @PostMapping("/sendSmsEmail")
    @CloudRequiredPermission("business:ywcontractbill:query")
    public ApiResponse sendSmsEmail(@RequestBody List<YwSmsEmailBillCallDTO> ywSmsEmailBillCallDTOList, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ywContractBillService.sendSmsEmail(ywSmsEmailBillCallDTOList,smsEmailService,getLoginUser(token));
        return ApiResponse.success(null);
    }
}