src/main/java/com/ruoyi/account/service/AccountExpenseService.java
@@ -7,6 +7,7 @@ import com.ruoyi.account.dto.AccountDto2; import com.ruoyi.account.dto.AccountDto3; import com.ruoyi.account.pojo.AccountExpense; import com.ruoyi.account.pojo.AccountIncome; import com.ruoyi.dto.DateQueryDto; import javax.servlet.http.HttpServletResponse; @@ -24,4 +25,6 @@ List<AccountDto3> reportExpense(); Map<String,List<String>> analysis(); AccountExpense getByInvoiceNumber(String purchaseContractNumber); } src/main/java/com/ruoyi/account/service/AccountIncomeService.java
@@ -18,4 +18,6 @@ void accountIncomeExport(HttpServletResponse response, AccountIncome accountIncome); List<AccountDto3> reportIncome(); AccountIncome getByInvoiceNumber(String purchaseContractNumber); } src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java
@@ -152,5 +152,11 @@ return result; } @Override public AccountExpense getByInvoiceNumber(String purchaseContractNumber) { return accountExpenseMapper.selectOne(Wrappers.<AccountExpense>lambdaQuery() .eq(AccountExpense::getInvoiceNumber, purchaseContractNumber)); } } src/main/java/com/ruoyi/account/service/impl/AccountIncomeServiceImpl.java
@@ -1,6 +1,7 @@ package com.ruoyi.account.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -74,4 +75,11 @@ } return accountDto3s; } @Override public AccountIncome getByInvoiceNumber(String purchaseContractNumber) { AccountIncome accountIncome = accountIncomeMapper.selectOne(new LambdaQueryWrapper<AccountIncome>() .eq(AccountIncome::getInvoiceNumber, purchaseContractNumber)); return accountIncome; } } src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -6,6 +6,10 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.pojo.AccountExpense; import com.ruoyi.account.pojo.AccountIncome; import com.ruoyi.account.service.AccountExpenseService; import com.ruoyi.account.service.AccountIncomeService; import com.ruoyi.basic.mapper.ProductMapper; import com.ruoyi.basic.mapper.ProductModelMapper; import com.ruoyi.basic.mapper.SupplierManageMapper; @@ -68,7 +72,7 @@ @RequiredArgsConstructor @Slf4j public class PurchaseLedgerServiceImpl extends ServiceImpl<PurchaseLedgerMapper, PurchaseLedger> implements IPurchaseLedgerService { private final AccountExpenseService accountExpenseService; private final PurchaseLedgerMapper purchaseLedgerMapper; private final SalesLedgerMapper salesLedgerMapper; @@ -128,12 +132,39 @@ purchaseLedger.setRecorderId(purchaseLedgerDto.getRecorderId()); purchaseLedger.setRecorderName(sysUser.getNickName()); purchaseLedger.setPhoneNumber(sysUser.getPhonenumber()); // 2. 处理账户收入 AccountExpense accountExpense = new AccountExpense(); accountExpense.setExpenseDate(purchaseLedger.getEntryDate()); accountExpense.setExpenseType("0"); accountExpense.setSupplierName(purchaseLedger.getSupplierName()); accountExpense.setExpenseMoney(purchaseLedger.getContractAmount()); accountExpense.setExpenseDescribed("采购合同:" + purchaseLedger.getPurchaseContractNumber()); accountExpense.setExpenseMethod("0"); accountExpense.setInvoiceNumber(purchaseLedger.getPurchaseContractNumber()); accountExpense.setInputTime(new Date()); accountExpense.setInputUser(loginUser.getNickName()); // 3. 新增或更新主表 if (purchaseLedger.getId() == null) { purchaseLedgerMapper.insert(purchaseLedger); // accountIncomeService.save(accountIncome); accountExpenseService.save(accountExpense); } else { purchaseLedgerMapper.updateById(purchaseLedger); PurchaseLedger purchaseLedgerDB = purchaseLedgerMapper.selectById(purchaseLedger.getId()); AccountExpense accountExpenseDB = accountExpenseService.getByInvoiceNumber(purchaseLedger.getPurchaseContractNumber()); if (ObjectUtils.isEmpty(accountExpenseDB)) { throw new BaseException("支出管理无该采购合同的支出记录"); } accountExpenseDB.setExpenseDate(purchaseLedgerDB.getEntryDate()); accountExpenseDB.setExpenseType("0"); accountExpenseDB.setSupplierName(purchaseLedgerDB.getSupplierName()); accountExpenseDB.setExpenseMoney(purchaseLedgerDB.getContractAmount()); accountExpenseDB.setExpenseDescribed("采购合同:" + purchaseLedgerDB.getPurchaseContractNumber()); accountExpenseDB.setExpenseMethod("0"); accountExpenseDB.setInvoiceNumber(purchaseLedgerDB.getPurchaseContractNumber()); accountExpenseService.updateById(accountExpenseDB); } // 4. 处理子表数据 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -8,6 +8,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.pojo.AccountExpense; import com.ruoyi.account.pojo.AccountIncome; import com.ruoyi.account.service.AccountIncomeService; import com.ruoyi.basic.mapper.CustomerMapper; import com.ruoyi.basic.pojo.Customer; import com.ruoyi.common.enums.FileNameType; @@ -62,6 +65,7 @@ @RequiredArgsConstructor @Slf4j public class SalesLedgerServiceImpl extends ServiceImpl<SalesLedgerMapper, SalesLedger> implements ISalesLedgerService { private final AccountIncomeService accountIncomeService; private final SalesLedgerMapper salesLedgerMapper; @@ -376,13 +380,36 @@ salesLedger.setCustomerName(customer.getCustomerName()); salesLedger.setTenantId(customer.getTenantId()); AccountIncome accountIncome = new AccountIncome(); accountIncome.setIncomeDate(salesLedger.getEntryDate()); accountIncome.setIncomeType("0"); accountIncome.setCustomerName(customer.getCustomerName()); accountIncome.setIncomeMoney(salesLedger.getContractAmount()); accountIncome.setIncomeMethod("0"); accountIncome.setInputTime(new Date()); accountIncome.setInputUser(salesLedger.getEntryPerson()); // 3. 新增或更新主表 if (salesLedger.getId() == null) { String contractNo = generateSalesContractNo(); salesLedger.setSalesContractNo(contractNo); salesLedgerMapper.insert(salesLedger); accountIncome.setIncomeDescribed("销售合同:" + salesLedger.getSalesContractNo()); accountIncome.setInvoiceNumber(salesLedger.getSalesContractNo()); accountIncomeService.save(accountIncome); } else { salesLedgerMapper.updateById(salesLedger); SalesLedger salesLedgerDB = salesLedgerMapper.selectById(salesLedger.getId()); AccountIncome accountIncomeDB = accountIncomeService.getByInvoiceNumber(salesLedger.getSalesContractNo()); if (ObjectUtils.isEmpty(accountIncomeDB)) { throw new BaseException("收入管理无该销售合同的收入记录"); } accountIncomeDB.setCustomerName(salesLedgerDB.getCustomerName()); accountIncomeDB.setIncomeMoney(salesLedgerDB.getContractAmount()); accountIncomeDB.setIncomeDescribed("销售合同:" + salesLedgerDB.getSalesContractNo()); accountIncomeDB.setInvoiceNumber(salesLedgerDB.getSalesContractNo()); accountIncomeDB.setInputTime(new Date()); accountIncomeDB.setInputUser(salesLedgerDB.getEntryPerson()); accountIncomeService.updateById(accountIncomeDB); } // 4. 处理子表数据