| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- package com.ydtech.modules.inv.controller;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.core.page.PageResult;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.esm.model.EsmInsCompany;
- import com.ydtech.modules.inv.model.po.InvSettlementSource;
- import com.ydtech.modules.inv.model.po.InvSource;
- import com.ydtech.modules.inv.model.vo.*;
- import com.ydtech.modules.inv.service.InvReceivableService;
- import com.ydtech.modules.inv.utils.EasyExcelUtils;
- import com.ydtech.modules.order.entity.BasePageResult;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.web.bind.annotation.*;
- import java.io.*;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.time.YearMonth;
- import java.time.format.DateTimeFormatter;
- import java.util.List;
- /**
- * @author jianlong
- * @date 2024-01-05 09:31
- */
- @Api(tags = "应收应付 - 数据查询", value = "应收应付数据查询")
- @RequestMapping("/InsReceivable")
- @RestController
- public class InvReceivableController extends BaseController {
- @Autowired
- private InvReceivableService invReceivableService;
- @Value("${upload.file.path}")
- private String uploadPath;
- @Value("${upload.file.url}")
- private String uploadUrl;
- @ApiOperation("应收导入数据分页查询")
- @PostMapping("receivablePage")
- public HttpResult<PageResult> receivablePage(@RequestBody InvSourceQueryVo invSourceQueryVo) {
- IPage<InvSource> recivablePage = invReceivableService.getRecivablePage(invSourceQueryVo);
- PageResult pageResult = buildPageResponse(recivablePage);
- return HttpResult.ok(pageResult);
- }
- @ApiOperation("应收导入数据修改")
- @PostMapping("receivableUpdates")
- public HttpResult updateRecivable(@RequestBody InvSource invSource) {
- Boolean b = invReceivableService.updateRecivable(invSource);
- return b ? HttpResult.ok("修改成功") : HttpResult.error("修改失败");
- }
- @ApiOperation("应收导入批量数据修改")
- @PostMapping("receivableUpdateBatch")
- public HttpResult updateRecivableBatch(@RequestBody InvSource invSource) {
- Boolean b = invReceivableService.updateRecivableBatch(invSource);
- return b ? HttpResult.ok("修改成功") : HttpResult.error("修改失败");
- }
- @ApiOperation("应收表导出")
- @PostMapping("exportReceivable")
- public HttpResult<PageResult> exportReceivable(@RequestBody InvSourceQueryVo invSourceQueryVo) throws IOException {
- List<InvSource> recivablePage = invReceivableService.getRecivableList(invSourceQueryVo);
- String uploadPath = this.uploadPath + "/excel/";
- Path path = Paths.get(uploadPath);
- if (!Files.exists(path)) {
- Files.createDirectories(path);
- }
- String fileName = EasyExcelUtils.downExcel(uploadPath, "应收表", InvSource.class, recivablePage);
- return HttpResult.ok(uploadUrl + "excel/" + fileName);
- }
- @ApiOperation("应收导入新增")
- @PostMapping("addReceivable")
- public HttpResult addReceivable(@RequestBody InvSource invSource) {
- Boolean b = invReceivableService.addReceivable(invSource);
- return b ? HttpResult.ok("新增成功") : HttpResult.error("新增失败");
- }
- @ApiOperation("应收导入删除")
- @PostMapping("deleteReceivable")
- public HttpResult deleteReceivable(@RequestBody String[] ids) {
- Boolean b = invReceivableService.deleteReceivable(ids);
- return b ? HttpResult.ok("删除成功") : HttpResult.error("删除失败");
- }
- @ApiOperation("结算导入数据分页查询")
- @PostMapping("settlementPage")
- public HttpResult<PageResult> settlementPage(@RequestBody InvSettlementSourceQueryVo invSettlementSourceQueryVo) {
- IPage<InvSettlementSource> recivablePage = invReceivableService.getSettlementPage(invSettlementSourceQueryVo);
- PageResult pageResult = buildPageResponse(recivablePage);
- return HttpResult.ok(pageResult);
- }
- @ApiOperation("结算导入数据修改")
- @PostMapping("updateSettlement")
- public HttpResult updateSettlement(@RequestBody InvSettlementSource invSettlementSource) {
- Boolean b = invReceivableService.updateSettlement(invSettlementSource);
- return b ? HttpResult.ok("修改成功") : HttpResult.error("修改失败");
- }
- @ApiOperation("结算导入数据批量修改")
- @PostMapping("updateSettlementBatch")
- public HttpResult updateSettlementBatch(@RequestBody InvSettlementSource invSettlementSource) {
- Boolean b = invReceivableService.updateSettlementBatch(invSettlementSource);
- return b ? HttpResult.ok("修改成功") : HttpResult.error("修改失败");
- }
- @ApiOperation("结算导出")
- @PostMapping("exportSettlement")
- public HttpResult<PageResult> exportSettlement(@RequestBody InvSettlementSourceQueryVo invSettlementSourceQueryVo) throws IOException {
- List<InvSettlementSource> recivableList = invReceivableService.getSettlementList(invSettlementSourceQueryVo);
- String uploadPath = this.uploadPath + "/excel/";
- Path path = Paths.get(uploadPath);
- if (!Files.exists(path)) {
- Files.createDirectories(path);
- }
- String fileName = EasyExcelUtils.downExcel(uploadPath, "结算表", InvSettlementSource.class, recivableList);
- return HttpResult.ok(uploadUrl + "excel/" + fileName);
- }
- @ApiOperation("结算导入新增")
- @PostMapping("addSettlement")
- public HttpResult addSettlement(@RequestBody InvSettlementSource invSettlementSource){
- return invReceivableService.addSettlement(invSettlementSource);
- }
- @ApiOperation("结算导入删除")
- @PostMapping("deleteSettlement")
- public HttpResult deleteSettlement(@RequestBody String[] ids) {
- Boolean b = invReceivableService.deleteSettlement(ids);
- return b ? HttpResult.ok("删除成功") : HttpResult.error("删除失败");
- }
- @ApiOperation("应收结果")
- @GetMapping("receivableResult")
- public HttpResult<BasePageResult<ReceivableResultVo>> receivableResult(String yearMonthStr, String insuranceId) {
- // 获取当前年月
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
- YearMonth yearMonth = YearMonth.parse(yearMonthStr, formatter);
- // 获取当前月份的最大天数
- int maxDaysInMonth = yearMonth.lengthOfMonth();
- List<ReceivableResultVo> invChannelAccountList = invReceivableService.getReceivableList(yearMonth + "-01",
- yearMonth + "-" + maxDaysInMonth, insuranceId);
- BasePageResult<ReceivableResultVo> invChannelAccountBasePageResult = new BasePageResult<>(0, 0, 0, 0, invChannelAccountList);
- return HttpResult.ok(invChannelAccountBasePageResult);
- }
- @ApiOperation("签单日期结算来源表")
- @GetMapping("signingSourceResult")
- public HttpResult<BasePageResult<SigningSourceResultVo>> signingSourceResult(String yearMonthStr, String insuranceId) {
- // 获取当前年月
- String startMonth = yearMonthStr + "-01-01";
- String endMonth = yearMonthStr + "-12-31";
- List<SigningSourceResultVo> invChannelAccountList = invReceivableService.getSigningSourceResult(yearMonthStr, insuranceId,
- startMonth, endMonth);
- BasePageResult<SigningSourceResultVo> invChannelAccountBasePageResult = new BasePageResult<>(0, 0, 0, 0, invChannelAccountList);
- return HttpResult.ok(invChannelAccountBasePageResult);
- }
- @ApiOperation("结算日期结算来源表")
- @GetMapping("settlementSourceResult")
- public HttpResult<BasePageResult<SettlementSourceResultVo>> settlementSourceResult(String yearMonthStr, String insuranceId) {
- // 获取当前年月
- List<SettlementSourceResultVo> invChannelAccountList = invReceivableService.getSettlementSourceResult(yearMonthStr, insuranceId);
- BasePageResult<SettlementSourceResultVo> invChannelAccountBasePageResult = new BasePageResult<>(0, 0, 0, 0, invChannelAccountList);
- return HttpResult.ok(invChannelAccountBasePageResult);
- }
- @ApiOperation("同步应收表与结算表的状态")
- @GetMapping("syncStatus")
- public HttpResult syncStatus() {
- Integer i = invReceivableService.syncStatus();
- return HttpResult.ok("同步成功,共同步" + i + "条数据");
- }
- @ApiOperation("获取保险公司")
- @GetMapping("getInsureCompany")
- public HttpResult getInsureCompany() {
- List<EsmInsCompany> insureCompany = invReceivableService.getInsureCompany();
- return HttpResult.ok(insureCompany);
- }
- @ApiOperation("应收应付表")
- @PostMapping("receivableAndSettlement")
- public HttpResult<PageResult> receivableAndSettlement(@RequestBody ReceivableAndSettlementQueryVo receivableAndSettlementQueryVo) {
- Page<ReceivableAndSettlementVo> invChannelAccountList =
- invReceivableService.getReceivableAndSettlementPage(receivableAndSettlementQueryVo);
- PageResult pageResult = buildPageResponse(invChannelAccountList);
- return HttpResult.ok(pageResult);
- }
- @ApiOperation("导出应收应付表")
- @PostMapping("excelReceivableAndSettlement")
- public HttpResult excelReceivableAndSettlement(@RequestBody ReceivableAndSettlementQueryVo receivableAndSettlementQueryVo) throws IOException {
- String uploadPath = this.uploadPath + "/excel/";
- Path path = Paths.get(uploadPath);
- if (!Files.exists(path)) {
- Files.createDirectories(path);
- }
- List<ReceivableAndSettlementVo> invChannelAccountList =
- invReceivableService.getReceivableAndSettlementList(receivableAndSettlementQueryVo);
- String fileName = EasyExcelUtils.downExcel(uploadPath, "应收应付表", ReceivableAndSettlementVo.class, invChannelAccountList);
- return HttpResult.ok(uploadUrl + "excel/" + fileName);
- }
- @ApiOperation("数据匹配")
- @GetMapping("dataMatching")
- public HttpResult dataMatching() {
- List<String> licensenos = invReceivableService.dataMatching();
- if (!licensenos.isEmpty()) {
- StringBuilder msg = new StringBuilder();
- for (String licenseno : licensenos) {
- msg.append(licenseno).append(",");
- }
- msg = new StringBuilder(msg.substring(0, msg.length() - 1));
- return HttpResult.ok("有" + licensenos.size() + "条数据与应收表数据无法匹配,其中包括:" + msg, true);
- }
- return HttpResult.ok("", false);
- }
- @GetMapping("getAccountsReceivable")
- public HttpResult getAccountsReceivable(){
- return HttpResult.ok("下载成功","/template/finance/accountsReceivable.xlsx");
- }
- @GetMapping("/getSettlement")
- public HttpResult getSettlement(){
- return HttpResult.ok("下载成功","/template/finance/settlement.xlsx");
- }
- }
|