From 15bc6b906046b71fd2c1da291eb727abf6e60af3 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Tue, 13 Aug 2024 17:50:47 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=E9=94=80=E5=94=AE=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E8=B5=84=E6=96=99=20=E8=B4=A2=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=20=E5=9B=BD=E7=A8=8E=E5=8F=91=E7=A5=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=B9=E6=8D=AE=E9=94=80=E5=94=AE=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=BF=A1=E6=81=AF=E5=A1=AB=E5=85=85=E5=8F=91=E7=A5=A8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3=EF=BC=9A?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BC=80=E7=A5=A8=E5=85=AC=E5=8F=B8=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=AD=89=E5=AD=97=E6=AE=B5=20=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E8=B5=84=E6=96=99=20=E6=96=B0=E5=A2=9E=20=20=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=AE=A2=E6=88=B7id=E6=9F=A5=E8=AF=A2=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E4=BF=A1=E6=81=AF=E5=90=8E=E7=AB=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=9B=E6=96=B0=E5=A2=9E=20=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=BC=80=E7=A5=A8=E5=85=AC=E5=8F=B8=E5=90=8D=E7=A7=B0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=BC=80=E7=A5=A8=E5=85=AC=E5=8F=B8=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E5=BC=80=E7=A5=A8=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E9=A1=B5=E9=9D=A2=EF=BC=9A=E5=BC=80=E7=A5=A8=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E5=90=8D=E7=A7=B0=E6=94=B9=E6=88=90=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=EF=BC=9B=E6=96=B0=E5=A2=9E=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=AE=A2=E6=88=B7id=E6=9F=A5=E8=AF=A2=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E4=BF=A1=E6=81=AF=E5=89=8D=E7=AB=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E6=96=B0=E5=A2=9E=E9=80=9A=E8=BF=87=E4=B8=8B?= =?UTF-8?q?=E6=8B=89=E9=80=89=E6=8B=A9=E5=BC=80=E7=A5=A8=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=9F=A5=E8=AF=A2=E5=BC=80=E7=A5=A8=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E4=BF=A1=E6=81=AF=E5=89=8D=E7=AB=AF=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E5=BC=80=E7=A5=A8=E5=85=AC=E5=8F=B8=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=9C=89=E5=BC=80=E7=A5=A8=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=BE=97=E5=88=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/FinancialTaxInvoiceServiceImpl.java | 14 ++ .../controller/SysCustomerController.java | 27 ++++ .../system/mapper/SysCustomerMapper.java | 10 ++ .../ruoyi/system/mapper/SysInvoiceMapper.java | 9 ++ .../system/service/ISysCustomerService.java | 11 ++ .../service/impl/SysCustomerServiceImpl.java | 57 ++++++++ .../mapper/system/SysCustomerMapper.xml | 11 ++ .../mapper/system/SysInvoiceMapper.xml | 5 + .../system/salesOrder/makeInvoiceRMB.html | 122 +++++++++++++++--- 9 files changed, 248 insertions(+), 18 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialTaxInvoiceServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialTaxInvoiceServiceImpl.java index 5927ea30..12abd152 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialTaxInvoiceServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialTaxInvoiceServiceImpl.java @@ -10,7 +10,9 @@ import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.financial.domain.FinancialTaxInvoiceMaterial; import com.ruoyi.financial.mapper.FinancialTaxInvoiceMaterialMapper; import com.ruoyi.financial.service.IFinancialTaxInvoiceMaterialService; +import com.ruoyi.system.domain.SysCustomerVo; import com.ruoyi.system.domain.SysSalesOrder; +import com.ruoyi.system.mapper.SysCustomerMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.financial.mapper.FinancialTaxInvoiceMapper; @@ -37,6 +39,9 @@ public class FinancialTaxInvoiceServiceImpl implements IFinancialTaxInvoiceServi @Autowired private IFinancialTaxInvoiceMaterialService invoiceMaterialService; + @Autowired + private SysCustomerMapper sysCustomerMapper; + @Autowired private RedisCache redisCache; @@ -164,6 +169,15 @@ public class FinancialTaxInvoiceServiceImpl implements IFinancialTaxInvoiceServi financialTaxInvoice.setNoRmbSum(BigDecimal.valueOf(sysSalesOrder.getNoRmbSum())); financialTaxInvoice.setUsdTaxSum(BigDecimal.valueOf(sysSalesOrder.getUsdTaxSum())); financialTaxInvoice.setNoUsdSum(BigDecimal.valueOf(sysSalesOrder.getNoUsdSum())); + SysCustomerVo sysCustomerVo = sysCustomerMapper.selectSysCustomerByEnterpriseCode(sysSalesOrder.getEnterpriseCode()); + financialTaxInvoice.setInvoiceCompanyCode(sysCustomerVo.getInvoicingCustomerName()); + financialTaxInvoice.setInvoiceCompanyName(sysCustomerVo.getInvoicingCompanyName()); + financialTaxInvoice.setBankAccount(sysCustomerVo.getBankAccount()); + financialTaxInvoice.setDepositBank(sysCustomerVo.getDepositBank()); + + + + return financialTaxInvoice; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysCustomerController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysCustomerController.java index e4c250aa..728b4184 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysCustomerController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysCustomerController.java @@ -581,4 +581,31 @@ public class SysCustomerController extends BaseController SysCustomer sysCustomer = sysCustomerService.selectSysCustomerByCustomerId(enterpriseCode); return AjaxResult.success(sysCustomer); } + + + /** + * 通过客户id查询开票公司信息 + * */ + @ResponseBody + @GetMapping("/getAllInvoiceCompanyNameByCode") + public List getAllInvoiceCompanyNameByCode(@RequestParam("enterpriseCode") String enterpriseCode ) { + List invoiceList = sysCustomerService.getInvoiceCompanyListByCode(enterpriseCode); + return invoiceList; + } + + + /** + * 通过开票公司名称查询开票公司信息 + * */ + @ResponseBody + @PostMapping("/getSysInvoiceInfoByName") + public AjaxResult getSysInvoiceInfoByName(String invoiceCompanyName) { + + SysInvoice result = sysCustomerService.getSysInvoiceInfoByName(invoiceCompanyName); + if (result != null) { + return AjaxResult.success(result); + } else { + return AjaxResult.error("未找到对应的开票信息"); + } + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysCustomerMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysCustomerMapper.java index 4cc51e90..d5ea2448 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysCustomerMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysCustomerMapper.java @@ -89,4 +89,14 @@ public interface SysCustomerMapper int cancelSysCustomerById(Long id); SysCustomerVo selectSysCustomerByCustomer(SysCustomerVo sysCustomerVo); + + /* + * 通过客户名称查询客户详情 + * */ + SysCustomerVo selectSysCustomerByEnterpriseName(String enterpriseName); + + /* + * 通过开票公司名称名称查询客户详情 + * */ + SysCustomerVo selectSysCustomerByInvoiceCompanyName(String invoicingCompanyName); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysInvoiceMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysInvoiceMapper.java index 2329ab7b..b68a3b73 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysInvoiceMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysInvoiceMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.system.mapper; import java.util.List; import com.ruoyi.system.domain.SysInvoice; +import org.apache.ibatis.annotations.Param; /** * 其他开票信息Mapper接口 @@ -80,4 +81,12 @@ public interface SysInvoiceMapper * @return 结果 */ public int restoreSysInvoiceById(Long id); + + /** + * 根据客户名称查询客户信息 + * + * @param invoiceCompanyName 客户名称 + * @return 结果 + */ + SysInvoice selectSysInvoiceByName(String invoiceCompanyName); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java index c6c52d2c..11073831 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java @@ -3,6 +3,7 @@ package com.ruoyi.system.service; import com.ruoyi.aftersales.domain.dto.CustomerDto; import com.ruoyi.system.domain.SysCustomer; import com.ruoyi.system.domain.SysCustomerVo; +import com.ruoyi.system.domain.SysInvoice; import org.activiti.engine.runtime.ProcessInstance; import org.springframework.transaction.annotation.Transactional; @@ -99,4 +100,14 @@ public interface ISysCustomerService List selectSysCustomerWithComplaintNotice(); List getMatchCustomerList(String customerCode); + + /** + * 通过客户id查询开票公司信息 + * */ + List getInvoiceCompanyListByCode(String enterpriseCode); + + /** + * 通过开票公司名称查询开票公司信息 + * */ + SysInvoice getSysInvoiceInfoByName(String invoiceCompanyName); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java index 62af3f76..14fc4b51 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java @@ -14,6 +14,7 @@ import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; import com.ruoyi.system.domain.*; import com.ruoyi.system.mapper.SysCustomerMapper; +import com.ruoyi.system.mapper.SysInvoiceMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.service.ISysCustomerService; import com.ruoyi.system.service.ISysInvoiceService; @@ -43,6 +44,9 @@ public class SysCustomerServiceImpl implements ISysCustomerService @Autowired private SysCustomerMapper sysCustomerMapper; + @Autowired + private SysInvoiceMapper sysInvoiceMapper; + @Autowired private RedisCache redisCache; @@ -319,6 +323,59 @@ public class SysCustomerServiceImpl implements ISysCustomerService return sysCustomerMapper.selectSysCustomerByCustomerId(enterpriseCode); } + + /** + * 通过客户id查询开票公司信息 + * */ + @Override + public List getInvoiceCompanyListByCode(String enterpriseCode) { + List sysInvoices = new ArrayList<>(); + //SysCustomerVo sysCustomerVo = sysCustomerMapper.selectSysCustomerByEnterpriseCode(enterpriseCode); + List invoiceList = sysInvoiceService.selectSysInvoiceByCode(enterpriseCode); +// SysInvoice sysInvoice = new SysInvoice(); +// sysInvoice.setBankAccount(sysCustomerVo.getBankAccount()); +// sysInvoice.setDepositBank(sysCustomerVo.getDepositBank()); +// sysInvoice.setEnterpriseCode(sysCustomerVo.getEnterpriseCode()); +// sysInvoice.setEnterpriseName(sysCustomerVo.getEnterpriseName()); +// sysInvoice.setInvoiceCompanyCode(sysCustomerVo.getInvoicingCustomerName()); +// sysInvoice.setInvoiceCompanyName(sysCustomerVo.getInvoicingCompanyName()); +// +// if (sysInvoice != null){ +// sysInvoices.add(sysInvoice); +// } + sysInvoices.addAll(invoiceList); + return sysInvoices; + } + + /** + * 通过开票公司名称查询开票公司信息 + * */ + @Override + public SysInvoice getSysInvoiceInfoByName(String invoiceCompanyName) { + + + SysInvoice sysInvoice = sysInvoiceMapper.selectSysInvoiceByName(invoiceCompanyName); + if (sysInvoice != null){ + + return sysInvoice; + + }else { + + SysInvoice tempSysInvoice = new SysInvoice(); + SysCustomerVo sysCustomerVo = sysCustomerMapper.selectSysCustomerByInvoiceCompanyName(invoiceCompanyName); + tempSysInvoice.setBankAccount(sysCustomerVo.getBankAccount()); + tempSysInvoice.setDepositBank(sysCustomerVo.getDepositBank()); + tempSysInvoice.setEnterpriseCode(sysCustomerVo.getEnterpriseCode()); + tempSysInvoice.setEnterpriseName(sysCustomerVo.getEnterpriseName()); + tempSysInvoice.setInvoiceCompanyCode(sysCustomerVo.getInvoicingCustomerName()); + tempSysInvoice.setInvoiceCompanyName(sysCustomerVo.getInvoicingCompanyName()); + return tempSysInvoice; + } + + } + + + @Override public int add(SysCustomer sysCustomer) { return sysCustomerMapper.insertSysCustomer(sysCustomer); diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml index aa066df5..eab06384 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml @@ -151,6 +151,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where enterprise_code = #{enterpriseCode} + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysInvoiceMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysInvoiceMapper.xml index 645bac18..20ffa128 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysInvoiceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysInvoiceMapper.xml @@ -44,6 +44,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where enterprise_code = #{enterpriseCode} + + insert into sys_invoice diff --git a/ruoyi-admin/src/main/resources/templates/system/salesOrder/makeInvoiceRMB.html b/ruoyi-admin/src/main/resources/templates/system/salesOrder/makeInvoiceRMB.html index 6fd31a9a..57039a5c 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesOrder/makeInvoiceRMB.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesOrder/makeInvoiceRMB.html @@ -61,31 +61,35 @@
- +
+ +
- +
- +
- +
- +
@@ -120,19 +124,6 @@ -
- -
- -
-
-
- -
- -
-
-
@@ -234,6 +225,8 @@ var materialProcessMethodDatas = [[${@dict.getType('processMethod')}]]; var materialTypeDatas = [[${@category.getChildByCode('materialType')}]]; + var taxInvoice = [[${taxInvoice}]]; + var prefix = ctx + "system/salesOrder" $("#form-taxInvoice-RMBAdd").validate({ focusCleanup: true @@ -371,6 +364,99 @@ }); + + //获取客户发票信息 + $(document).ready(function() { + // 初始化时默认加载客户编号列表 + loadInvoiceCompanyNames(); + + // 监听开票公司名称下拉框的变化 + $('#invoiceCompanyName').on('change', function() { + var selectedInvoiceCompanyName = $(this).val(); // 获取选中的开票公司名称 + if (selectedInvoiceCompanyName) { + // 发起Ajax请求获取客户名称 + $.ajax({ + type: 'POST', + url: ctx + 'system/customer/getSysInvoiceInfoByName', + dataType: 'json', // 假设返回的数据格式是JSON + data: { invoiceCompanyName: selectedInvoiceCompanyName }, // 数据放在这里 + success: function(data) { + console.log(data); + // 将获取到的客户名称填充到输入框 + if (!data || !data.data) { + // 如果返回的数据有问题,可以给出提示或处理 + $.modal.alertWarning('未能获取到开票公司信息!'); + } else { + fillInvoiceDetails(data.data); + } + }, + error: function(jqXHR, textStatus, errorThrown) { + console.error('Error:', textStatus, errorThrown); + $.modal.alertWarning('查询开票公司名称时发生错误!'); + } + }); + } else { + // 如果没有选择开票公司名称,清开票信息输入框 + clearInvoiceDetails(); + } + }); + }); + + // 封装填充发票详情的函数 + function fillInvoiceDetails(details) { + $('input[name="invoiceCompanyCode"]').val(details.invoiceCompanyCode); + $('input[name="depositBank"]').val(details.depositBank); + $('input[name="bankAccount"]').val(details.bankAccount); + } + + // 封装清空发票详情的函数 + function clearInvoiceDetails() { + $('input[name="invoiceCompanyCode"]').val(''); + $('input[name="depositBank"]').val(''); + $('input[name="bankAccount"]').val(''); + } + + + + // 假设的加载客户编号列表函数 + function loadInvoiceCompanyNames() { + var enterpriseCode = $("#enterpriseCode").val(); + var url = ctx + 'system/customer/getAllInvoiceCompanyNameByCode' + '?enterpriseCode=' + enterpriseCode; + var tempInvoiceCompanyName = taxInvoice.invoiceCompanyName; + + $.ajax({ + type: 'GET', // 请求类型 + url: url, // 后端接口URL + dataType: 'json', // 预期服务器返回的数据类型 + success: function(data) { + if (data && Array.isArray(data)) { + var selectElement = $('#invoiceCompanyName'); // 获取开票公司名称下拉框元素 + // 清空下拉框现有选项 + selectElement.empty(); + + // 添加默认选项 + if (tempInvoiceCompanyName) { + selectElement.append(''); + } + + // 遍历返回的数据,添加为下拉框的选项 + $.each(data, function(index, item) { + // 假设item有invoiceCompanyName属性,代表客户名称 + selectElement.append(''); + }); + + // 设置默认值 + if (tempInvoiceCompanyName) { + selectElement.val(tempInvoiceCompanyName); + } + } else { + $.modal.errMsg("开票公司信息为空"); + } + }, + }); + } + + \ No newline at end of file