Merge branch 'test' into feauture-20261104
# Conflicts: # bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcOrderBillMapper.java
This commit is contained in:
+135
@@ -0,0 +1,135 @@
|
||||
package com.bms.web.controller.report;
|
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.bms.ar.profit.ArCommissionRate;
|
||||
import com.bms.ar.profit.ArCommissionService;
|
||||
import com.bms.ar.profit.ArProfitQuery;
|
||||
import com.bms.ar.profit.ArProfitService;
|
||||
import com.bms.ar.profit.ArWriteoffRate;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import com.bms.ar.profit.ArProfitRow;
|
||||
import com.bms.ar.profit.ArCommissionResult;
|
||||
import com.bms.common.utils.poi.ExcelUtil;
|
||||
import com.bms.price.enums.ProfitAreaRule;
|
||||
import com.bms.common.annotation.Log;
|
||||
import com.bms.common.core.controller.BaseController;
|
||||
import com.bms.common.core.domain.AjaxResult;
|
||||
import com.bms.common.core.page.TableDataInfo;
|
||||
import com.bms.common.enums.BusinessType;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/report/ar-profit")
|
||||
public class ArProfitController extends BaseController
|
||||
{
|
||||
private final ArProfitService report;
|
||||
private final ArCommissionService commissions;
|
||||
|
||||
public ArProfitController(ArProfitService report, ArCommissionService commissions)
|
||||
{
|
||||
this.report = report;
|
||||
this.commissions = commissions;
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:list')")
|
||||
@GetMapping("/summary")
|
||||
public AjaxResult summary(ArProfitQuery query) { return success(report.selectSummary(query)); }
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:list')")
|
||||
@GetMapping("/sales-options")
|
||||
public AjaxResult salesOptions(@RequestParam(required = false) String keyword) { return success(report.selectSalesOptions(keyword)); }
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:list')")
|
||||
@GetMapping("/area-rules")
|
||||
public AjaxResult areaRules() { return success(ProfitAreaRule.areaRules()); }
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:list')")
|
||||
@GetMapping("/orders/{detailId}/fees")
|
||||
public AjaxResult fees(@PathVariable Long detailId) { return success(report.selectFees(detailId)); }
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:list')")
|
||||
@GetMapping("/bills/{billId}/details")
|
||||
public TableDataInfo billDetails(@PathVariable Long billId)
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(report.selectBillDetails(billId));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:list')")
|
||||
@GetMapping("/bills")
|
||||
public TableDataInfo bills(ArProfitQuery query)
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(report.selectBills(query));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:commission')")
|
||||
@GetMapping("/rates")
|
||||
public AjaxResult rates() { return success(commissions.selectRates()); }
|
||||
|
||||
@Log(title = "账单毛利提成比例", businessType = BusinessType.INSERT)
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:commission')")
|
||||
@PostMapping("/rates")
|
||||
public AjaxResult addRate(@RequestBody ArCommissionRate rate)
|
||||
{
|
||||
commissions.addRate(rate);
|
||||
return success();
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:commission')")
|
||||
@GetMapping("/writeoffs/missing-rates")
|
||||
public TableDataInfo missingRates()
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(commissions.missingRates());
|
||||
}
|
||||
|
||||
@Log(title = "历史核销提成比例确认", businessType = BusinessType.UPDATE)
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:commission')")
|
||||
@PostMapping("/writeoffs/confirm-rate")
|
||||
public AjaxResult confirmRate(@RequestBody ArWriteoffRate input)
|
||||
{
|
||||
commissions.confirmMissingRate(input);
|
||||
return success();
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:commission')")
|
||||
@GetMapping("/commissions")
|
||||
public TableDataInfo commissions(@RequestParam(required = false) Long billId,
|
||||
@RequestParam(defaultValue = "false") boolean includeReversed)
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(commissions.results(billId, includeReversed));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:commission')")
|
||||
@GetMapping("/commissions/summary")
|
||||
public AjaxResult commissionSummary(@RequestParam(required = false) Long billId) { return success(commissions.summary(billId)); }
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:commission')")
|
||||
@GetMapping("/commissions/{billId}/writeoffs")
|
||||
public AjaxResult commissionWriteoffs(@PathVariable Long billId) { return success(commissions.writeoffRates(billId)); }
|
||||
|
||||
@Log(title = "应收账单提成明细", businessType = BusinessType.EXPORT)
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:commission')")
|
||||
@PostMapping("/commissions/export")
|
||||
public void exportCommissions(HttpServletResponse response, @RequestParam(required = false) Long billId)
|
||||
{
|
||||
new ExcelUtil<>(ArCommissionResult.class).exportExcel(response, commissions.results(billId, false), "应收账单提成明细");
|
||||
}
|
||||
|
||||
@Log(title = "应收账单毛利分析", businessType = BusinessType.EXPORT)
|
||||
@PreAuthorize("@ss.hasPermi('report:arProfit:export')")
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, ArProfitQuery query)
|
||||
{
|
||||
ExcelUtil<ArProfitRow> excel = new ExcelUtil<>(ArProfitRow.class);
|
||||
excel.exportExcel(response, report.selectBills(query), "应收账单毛利分析");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user