diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java index 14cc6725..1e0a6295 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java @@ -82,4 +82,9 @@ public interface IFinancialReceivablesService * 应收账款详情 * */ int financialReceivablesDetail(FinancialReceivables financialReceivables); + + /* + * 销售订单审批完成后根据销售单号生成财务应收账款 + * */ + int generateReceivablesBySalesOrderCode(String salesOrderCode); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java index 808b4816..26a621a7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.financial.service.impl; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -12,6 +13,11 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.financial.domain.FinancialReceivablesRecords; import com.ruoyi.financial.domain.VO.FinancialReceivablesRecordsVO; import com.ruoyi.financial.mapper.FinancialReceivablesRecordsMapper; +import com.ruoyi.system.domain.SysCustomerVo; +import com.ruoyi.system.domain.SysSalesOrderVo; +import com.ruoyi.system.mapper.SysCustomerMapper; +import com.ruoyi.system.mapper.SysSalesOrderMapper; +import com.ruoyi.system.service.ISysSalesOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,8 +40,15 @@ public class FinancialReceivablesServiceImpl implements IFinancialReceivablesSer @Autowired private FinancialReceivablesMapper financialReceivablesMapper; + @Autowired + private SysSalesOrderMapper sysSalesOrderMapper; + @Autowired private FinancialReceivablesRecordsMapper receivablesRecordsMapper; + + @Autowired + private SysCustomerMapper sysCustomerMapper; + /** * 查询财务应收账款 * @@ -137,6 +150,54 @@ public class FinancialReceivablesServiceImpl implements IFinancialReceivablesSer } + /* + * 销售订单审批完成后根据销售单号生成财务应收账款 + * */ + @Override + public int generateReceivablesBySalesOrderCode(String salesOrderCode) { + FinancialReceivables financialReceivables = new FinancialReceivables(); + FinancialReceivablesRecords receivablesRecords = new FinancialReceivablesRecords(); + // 更改日期格式以提高可读性 + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String datePart = df.format(new Date()); + // 移除日期中的分隔符以便于后续处理 + String prefix = "YS" + datePart.replace("-", ""); + + // 查询数据库中当前最大编号 + String maxCode = financialReceivablesMapper.findMaxRoundCode(prefix); + String newCode = generateNewCode(prefix, maxCode); + + SysSalesOrderVo sysSalesOrderVo = sysSalesOrderMapper.selectSysSalesOrderBySalesOrderCode(salesOrderCode); + SysCustomerVo sysCustomerVo = sysCustomerMapper.selectSysCustomerByEnterpriseCode(sysSalesOrderVo.getEnterpriseCode()); + financialReceivables.setSalesOrderCode(salesOrderCode); + //自动生成 应收单号 + financialReceivables.setFinancialReceivablesCode(newCode); + financialReceivables.setReceivablesClosingStatus("0"); + financialReceivables.setCreditAccount("客户"); + financialReceivables.setCreditDetail(sysCustomerVo.getEnterpriseName()); + financialReceivables.setOpenBank(sysCustomerVo.getDepositBank()); + financialReceivables.setOpenAccount(sysCustomerVo.getBankAccount()); + financialReceivables.setCustomerId(sysCustomerVo.getEnterpriseCode()); + financialReceivables.setCurrencyType(sysSalesOrderVo.getCommonCurrency()); + financialReceivables.setPriceExcludingTax(BigDecimal.valueOf(sysSalesOrderVo.getNoRmbSum())); + financialReceivables.setPriceIncludesTax(BigDecimal.valueOf(sysSalesOrderVo.getRmbTaxSum())); + financialReceivables.setPaymentCondition(sysSalesOrderVo.getPaymentTerms()); + financialReceivables.setBusinessMembers(sysSalesOrderVo.getBusinessMembers()); + financialReceivables.setFinancialDeliverStatus("0"); + financialReceivables.setCreateTime(new Date()); + financialReceivables.setCreateBy(ShiroUtils.getLoginName()); + + //插入数据到应收款明细中 + receivablesRecords.setFinancialReceivablesCode(newCode); + receivablesRecords.setReceivablesClosingStatus("0"); + receivablesRecords.setSalesOrderCode(salesOrderCode); + receivablesRecords.setCreateTime(new Date()); + receivablesRecords.setCreateBy(ShiroUtils.getLoginName()); + receivablesRecordsMapper.insertFinancialReceivablesRecords(receivablesRecords); + return financialReceivablesMapper.insertFinancialReceivables(financialReceivables); + + } + /** * 删除财务应收账款对象 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java index 57a1bdc5..ed2aa5ee 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java @@ -21,6 +21,7 @@ import com.ruoyi.common.utils.file.FileUploadUtils; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.erp.domain.ErpMaterialVo; +import com.ruoyi.financial.service.IFinancialReceivablesService; import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.exportDto.SysSalesFinishDto; @@ -90,6 +91,10 @@ public class SysSalesOrderController extends BaseController @Autowired private SysSalesOrderMapper sysSalesOrderMapper; + @Autowired + private IFinancialReceivablesService financialReceivablesService; + + @RequiresPermissions("system:salesOrder:view") @GetMapping() public String salesOrder(ModelMap mmap) @@ -454,6 +459,8 @@ public class SysSalesOrderController extends BaseController //生产订单生成 sysMakeOrderService.generateMakeOrderBySalesOrderCode(sysSalesOrderVo1.getSalesOrderCode()); + //生成财务应收账款 + financialReceivablesService.generateReceivablesBySalesOrderCode(sysSalesOrderVo1.getSalesOrderCode()); // 提交 if("submit".equals(instanceType)){