|  |  | 
 |  |  | 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; | 
 |  |  | 
 |  |  | @RequiredArgsConstructor | 
 |  |  | @Slf4j | 
 |  |  | public class PurchaseLedgerServiceImpl extends ServiceImpl<PurchaseLedgerMapper, PurchaseLedger> implements IPurchaseLedgerService { | 
 |  |  |  | 
 |  |  |     private final AccountExpenseService accountExpenseService; | 
 |  |  |     private final PurchaseLedgerMapper purchaseLedgerMapper; | 
 |  |  |  | 
 |  |  |     private final SalesLedgerMapper salesLedgerMapper; | 
 |  |  | 
 |  |  |         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. 处理子表数据 |