فهرست منبع

用户申请的发票抬头列表

zoujiajian 1 سال پیش
والد
کامیت
8b3ec01620

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/InvoiceCompanyMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.InvoiceCompany;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: InvoiceCompanyMapper
+ * 创建者: JavaZou
+ * 创建时间:2025/4/27 14:15
+ */
+public interface InvoiceCompanyMapper extends BaseMapper<InvoiceCompany> {
+}

+ 31 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/InvoiceCompany.java

@@ -0,0 +1,31 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: InvoiceCompany
+ * 创建者: JavaZou
+ * 创建时间:2025/4/27 14:15
+ */
+@Getter
+@Setter
+public class InvoiceCompany extends BaseEntity{
+	/**
+	 * 公司
+	 */
+	private String company;
+
+	/**
+	 * 税号
+	 */
+	private String taxNo;
+
+	/**
+	 *
+	 */
+	private BigDecimal taxRate;
+}

+ 53 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserInvoiceHeadView.java

@@ -0,0 +1,53 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: UserInvoiceHeadView
+ * 创建者: JavaZou
+ * 创建时间:2025/4/27 14:02
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_invoice_apply_record uar")
+public class UserInvoiceHeadView {
+
+	@DbField("uar.id")
+	private Long id;
+
+	@DbField("uar.user_id")
+	@JsonIgnore
+	private Long userId;
+
+	/**
+	 * 发票头部信息
+	 */
+	@DbField("uar.head")
+	private String head;
+
+	/**
+	 * 税号
+	 */
+	@DbField("uar.tax_no")
+	private String taxNo;
+
+	/**
+	 * 银行
+	 */
+	@DbField("uar.bank")
+	private String bank;
+
+	/**
+	 * 银行卡号
+	 */
+	@DbField("uar.bank_no")
+	private String bankNo;
+
+	@DbField("uar.email")
+	private String email;
+}

+ 25 - 0
netflix-web/src/main/java/com/cyksj/web/controller/invoice/UserInvoiceFrontController.java

@@ -7,6 +7,7 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.model.request.UserInvoiceOrderReq;
 import com.cyksj.model.views.UserInvoiceChoseOrderViews;
 import com.cyksj.model.views.UserInvoiceFrontView;
+import com.cyksj.model.views.UserInvoiceHeadView;
 import com.cyksj.model.views.UserInvoiceOrderViews;
 import com.cyksj.service.invoice.UserInvoiceApplyRecordService;
 import com.cyksj.service.user.UserBindRelationService;
@@ -21,7 +22,9 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 项目名: yhlxj
@@ -99,4 +102,26 @@ public class UserInvoiceFrontController {
 		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
+
+	/**
+	 * 用户申请的发票抬头列表
+	 */
+	@GetMapping("/get/head")
+	public Result<List<UserInvoiceHeadView>> getHead() {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		List<String> collect = beanSearcher.searchAll(UserInvoiceHeadView.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(UserInvoiceHeadView::getUserId, userIdList).op(Operator.InList)
+				.orderBy(UserInvoiceHeadView::getId).desc()
+				.build()).stream().map(UserInvoiceHeadView::getHead).distinct().collect(Collectors.toList());
+		List<UserInvoiceHeadView> list = new ArrayList<>(collect.size());
+		collect.forEach(head -> {
+			UserInvoiceHeadView userInvoiceHeadView = beanSearcher.searchFirst(UserInvoiceHeadView.class, MapUtils.builder().field(UserInvoiceHeadView::getUserId, userIdList).op(Operator.InList)
+					.field(UserInvoiceHeadView::getHead, head)
+					.orderBy(UserInvoiceHeadView::getId).desc()
+					.build());
+			list.add(userInvoiceHeadView);
+		});
+		return GatewayResponse.SUCCESS.newBuilder().toResult(list);
+	}
 }

+ 42 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/invoice/UserInvoiceController.java

@@ -4,7 +4,9 @@ import com.alibaba.excel.support.ExcelTypeEnum;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.InvoiceCompanyMapper;
 import com.cyksj.mapper.UserInvoiceApplyRecordMapper;
+import com.cyksj.model.entity.InvoiceCompany;
 import com.cyksj.model.entity.UserInvoiceApplyRecord;
 import com.cyksj.model.excel.ExcelInvoiceData;
 import com.cyksj.model.views.UserInvoiceApplyRecordView;
@@ -36,6 +38,8 @@ public class UserInvoiceController {
 
 	private final UserInvoiceApplyRecordMapper userInvoiceApplyRecordMapper;
 
+	private final InvoiceCompanyMapper invoiceCompanyMapper;
+
 	/**
 	 * 用户发票申请记录
 	 */
@@ -71,4 +75,42 @@ public class UserInvoiceController {
 		List<ExcelInvoiceData> list = beanSearcher.searchAll(ExcelInvoiceData.class, MapUtils.flatBuilder(request.getParameterMap()).orderBy(ExcelInvoiceData::getUpdateTime).desc().build());
 		EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelInvoiceData.class, list, "用户发票", "用户发票", ExcelTypeEnum.XLSX, null);
 	}
+
+	//==========================================================税率管理=================================================================================
+
+	/**
+	 * 税率管理列表
+	 */
+	@GetMapping("/get/company/taxRate")
+	public Result<List<InvoiceCompany>> getCompanyTaxRate() {
+		List<InvoiceCompany> invoiceCompanies = beanSearcher.searchAll(InvoiceCompany.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(invoiceCompanies);
+	}
+
+	/**
+	 * 新增公司税率
+	 */
+	@PostMapping("/post/company/taxRate")
+	public Result<String> insertCompanyTaxRate(@RequestBody InvoiceCompany invoiceCompany) {
+		invoiceCompanyMapper.insert(invoiceCompany);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 编辑公司税率
+	 */
+	@PutMapping("/update/company/taxRate")
+	public Result<String> updateCompanyTaxRate(@RequestBody InvoiceCompany invoiceCompany) {
+		invoiceCompanyMapper.updateById(invoiceCompany);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
+	/**
+	 * 删除公司税率
+	 */
+	@DeleteMapping("/delete/company/taxRate/{id}")
+	public Result<String> updateCompanyTaxRate(@PathVariable Long id) {
+		invoiceCompanyMapper.deleteById(id);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
 }