src/main/java/com/ruoyi/account/controller/AccountIncomeController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/account/mapper/AccountIncomeMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/account/mapper/sales/AccountSalesCollectionMapper.java
@@ -7,6 +7,7 @@ import com.ruoyi.account.bean.vo.sales.AccountSalesCollectionVo; import com.ruoyi.account.bean.vo.sales.SalesOutboundVo; import com.ruoyi.account.pojo.sales.AccountSalesCollection; import com.ruoyi.home.dto.IncomeExpenseAnalysisDto; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -29,4 +30,6 @@ boolean existsByStockOutRecordId(@Param("stockOutRecordIds") List<Long> stockOutRecordIds); List<SalesOutboundVo> getOutboundBatchesByCustomer(@Param("customerId") Integer customerId); List<IncomeExpenseAnalysisDto> selectIncomeStats(@Param("startStr") String startStr, @Param("endStr") String endStr, @Param("dateFormat") String dateFormat); } src/main/java/com/ruoyi/account/pojo/AccountIncome.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/account/service/AccountIncomeService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/account/service/impl/AccountIncomeServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/account/service/impl/BorrowInfoServiceImpl.java
@@ -4,11 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.mapper.BorrowInfoMapper; import com.ruoyi.account.pojo.AccountIncome; import com.ruoyi.account.pojo.BorrowInfo; import com.ruoyi.account.service.AccountIncomeService; import com.ruoyi.account.service.BorrowInfoService; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.domain.AjaxResult; import lombok.RequiredArgsConstructor; @@ -31,7 +28,6 @@ public class BorrowInfoServiceImpl extends ServiceImpl<BorrowInfoMapper, BorrowInfo> implements BorrowInfoService { private final BorrowInfoMapper borrowInfoMapper; private final AccountIncomeService accountIncomeService; @Override public AjaxResult listPage(Page page, BorrowInfo borrowInfo) { @@ -55,19 +51,7 @@ public AjaxResult add(BorrowInfo borrowInfo) { int insert = borrowInfoMapper.insert(borrowInfo); if(insert > 0){ // æ·»å æåï¼è¿å ¥æ¶å ¥ç®¡ç AccountIncome accountIncome = new AccountIncome(); accountIncome.setBusinessId(borrowInfo.getId()); accountIncome.setBusinessType(2); accountIncome.setIncomeDate(DateUtils.toDate(borrowInfo.getBorrowDate())); accountIncome.setIncomeType("2"); accountIncome.setIncomeMoney(borrowInfo.getBorrowAmount()); accountIncome.setIncomeDescribed("忬¾"); accountIncome.setIncomeMethod("3"); accountIncome.setInputTime(DateUtils.getNowDate()); accountIncome.setInputUser(borrowInfo.getBorrowerName()); accountIncomeService.save(accountIncome); return AjaxResult.success("æ·»å æå"); return AjaxResult.success("æ·»å æå"); } return AjaxResult.success("æ·»å 失败"); } @@ -76,15 +60,6 @@ public AjaxResult updateBorrowInfo(BorrowInfo borrowInfo) { int update = borrowInfoMapper.updateById(borrowInfo); if(update > 0){ // ä¿®æ¹æåï¼ä¿®æ¹æ¶å ¥ç®¡ç AccountIncome one = accountIncomeService.getOne(new LambdaQueryWrapper<AccountIncome>() .eq(AccountIncome::getBusinessId, borrowInfo.getId()) .eq(AccountIncome::getBusinessType, 2) .last("limit 1")); if(one != null){ one.setIncomeMoney(borrowInfo.getBorrowAmount()); accountIncomeService.updateById(one); } return AjaxResult.success("ä¿®æ¹æå"); } return AjaxResult.success("ä¿®æ¹å¤±è´¥"); @@ -94,11 +69,7 @@ public AjaxResult delete(List<Long> ids) { int delete = borrowInfoMapper.deleteBatchIds(ids); if(delete > 0){ // å 餿åï¼å 餿¶å ¥ç®¡ç accountIncomeService.remove(new LambdaQueryWrapper<AccountIncome>() .in(AccountIncome::getBusinessId, ids) .eq(AccountIncome::getBusinessType, 2)); return AjaxResult.success("å 餿å"); return AjaxResult.success("å 餿å"); } return AjaxResult.success("å é¤å¤±è´¥"); } src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -199,7 +199,6 @@ AFTER_SALES_SERVICE_FILE("after_sales_service_file"), AFTER_SALES_NEAR_EXPIRY("after_sales_near_expiry"), // Account ACCOUNT_INCOME("account_income"), BORROW_INFO("borrow_info"), SALES_REFUND_AMOUNT_ORDER("sales_refund_amount_order"), SALES_RECEIPT_RETURN("sales_receipt_return"), src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -3,8 +3,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.ruoyi.account.mapper.AccountIncomeMapper; import com.ruoyi.account.mapper.purchase.AccountPurchasePaymentMapper; import com.ruoyi.account.mapper.sales.AccountSalesCollectionMapper; import com.ruoyi.approve.mapper.ApproveProcessMapper; import com.ruoyi.approve.pojo.ApproveProcess; import com.ruoyi.basic.mapper.CustomerMapper; @@ -111,7 +111,7 @@ private final ProductionOperationTaskMapper productionOperationTaskMapper; private final AccountPurchasePaymentMapper accountPurchasePaymentMapper; private final AccountIncomeMapper accountIncomeMapper; private final AccountSalesCollectionMapper accountSalesCollectionMapper; private final ProductionAccountMapper productionAccountMapper; @@ -1162,7 +1162,7 @@ String endStr = endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 2. æ¥è¯¢æ°æ® List<IncomeExpenseAnalysisDto> incomeList = accountIncomeMapper.selectIncomeStats(startStr, endStr, dateFormat); List<IncomeExpenseAnalysisDto> incomeList = accountSalesCollectionMapper.selectIncomeStats(startStr, endStr, dateFormat); List<IncomeExpenseAnalysisDto> expenseList = accountPurchasePaymentMapper.selectPayment(startStr, endStr, dateFormat); @@ -1219,7 +1219,7 @@ String startStr = startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); String endStr = endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); List<IncomeExpenseAnalysisDto> incomeList = accountIncomeMapper.selectIncomeStats(startStr, endStr, dateFormat); List<IncomeExpenseAnalysisDto> incomeList = accountSalesCollectionMapper.selectIncomeStats(startStr, endStr, dateFormat); List<IncomeExpenseAnalysisDto> expenseList = accountPurchasePaymentMapper.selectPayment(startStr, endStr, dateFormat); Map<String, BigDecimal> incomeMap = incomeList.stream().collect(Collectors src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java
@@ -6,12 +6,7 @@ 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.AccountIncome; import com.ruoyi.account.service.AccountIncomeService; import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.procurementrecord.utils.StockUtils; import com.ruoyi.purchase.dto.PurchaseReturnOrderDto; import com.ruoyi.purchase.dto.PurchaseReturnOrderHasAllInfoDto; @@ -50,7 +45,6 @@ private final PurchaseReturnOrdersMapper purchaseReturnOrdersMapper; private final PurchaseReturnOrderProductsMapper purchaseReturnOrderProductsMapper; private final ISalesLedgerService salesLedgerService; private final AccountIncomeService accountIncomeService; private final StockUtils stockUtils; private final SalesLedgerProductMapper salesLedgerProductMapper; private final PurchaseLedgerMapper purchaseLedgerMapper; @@ -82,21 +76,6 @@ }else { throw new RuntimeException("è¯·éæ©éè´§åå"); } // 对财å¡ç®¡çå°è´¦æ·»å ä¸ç¬è¿è´¦æ¶å ¥. AccountIncome accountIncome = new AccountIncome(); LoginUser loginUser = SecurityUtils.getLoginUser(); accountIncome.setInputUser(loginUser.getUsername()); accountIncome.setIncomeMoney(purchaseReturnOrderDto.getTotalAmount()); accountIncome.setIncomeDate(DateUtils.toDate(purchaseReturnOrderDto.getPreparedAt())); accountIncome.setInputTime(DateUtils.toDate(purchaseReturnOrderDto.getPreparedAt())); accountIncome.setBusinessId(purchaseReturnOrderDto.getId()); accountIncome.setBusinessType(1); accountIncome.setIncomeType("4"); accountIncome.setCustomerName(purchaseReturnOrderDto.getSupplierName()); accountIncome.setIncomeDescribed(purchaseReturnOrderDto.getRemark()); accountIncome.setIncomeMethod(String.valueOf(purchaseReturnOrderDto.getIncomeType())); accountIncomeService.save(accountIncome); return true; } @@ -123,12 +102,6 @@ purchaseReturnOrderProducts.stream().forEach(purchaseReturnOrderProducts1 -> { stockUtils.deleteStockOutRecord(purchaseReturnOrderProducts1.getId(),StockOutQualifiedRecordTypeEnum.PURCHASE_RETURN_STOCK_OUT.getCode()); }); // è´¢å¡ LambdaUpdateWrapper<AccountIncome> updateWrapperAccountIncome = new LambdaUpdateWrapper<>(); updateWrapperAccountIncome.eq(AccountIncome::getBusinessId, id); updateWrapperAccountIncome.eq(AccountIncome::getBusinessType, 1); updateWrapperAccountIncome.eq(AccountIncome::getIncomeType, 4); accountIncomeService.remove(updateWrapperAccountIncome); } @Override src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.pojo.AccountIncome; import com.ruoyi.account.service.AccountIncomeService; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.sales.dto.InvoiceLedgerDto; @@ -20,7 +18,6 @@ import com.ruoyi.sales.service.ReceiptPaymentService; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -38,7 +35,6 @@ private final ReceiptPaymentMapper receiptPaymentMapper; private final SalesLedgerMapper salesLedgerMapper; private final SalesLedgerProductMapper salesLedgerProductMapper; private final AccountIncomeService accountIncomeService; /** * 忬¾ç»è®°æ°å¢ @@ -65,19 +61,6 @@ salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(receiptPayment.getReceiptPaymentAmount())); salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal())); receiptPaymentMapper.insert(receiptPayment); // å¢å è´¢å¡æ¶å ¥è®°å½ AccountIncome accountIncome = new AccountIncome(); accountIncome.setIncomeDate(salesLedger.getEntryDate()); accountIncome.setIncomeType("3"); accountIncome.setCustomerName(salesLedger.getCustomerName()); accountIncome.setIncomeMoney(receiptPayment.getReceiptPaymentAmount()); accountIncome.setIncomeMethod(receiptPayment.getReceiptPaymentType()); accountIncome.setInputTime(new Date()); accountIncome.setInputUser(SecurityUtils.getLoginUser().getNickName()); accountIncome.setIncomeDescribed("忬¾æ¶å ¥"); accountIncome.setBusinessId(Long.parseLong(receiptPayment.getId().toString())); accountIncome.setBusinessType(1); accountIncomeService.save(accountIncome); }else { BigDecimal subtract = byId.getReceiptPaymentAmount().subtract(receiptPayment.getReceiptPaymentAmount()); salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(subtract)); @@ -85,15 +68,6 @@ receiptPayment.setReceiptPaymentAmount(byId.getReceiptPaymentAmount()); receiptPayment.setReceiptPaymentType(byId.getReceiptPaymentType()); receiptPaymentMapper.updateById(receiptPayment); // ä¿®æ¹è´¢å¡æ¶å ¥è®°å½ LambdaQueryWrapper<AccountIncome> accountIncomeLambdaQueryWrapper = new LambdaQueryWrapper<>(); accountIncomeLambdaQueryWrapper.eq(AccountIncome::getBusinessId, receiptPayment.getId()) .eq(AccountIncome::getBusinessType, 1); AccountIncome accountIncome = accountIncomeService.getOne(accountIncomeLambdaQueryWrapper); if(null!=accountIncome){ accountIncome.setIncomeMoney(receiptPayment.getReceiptPaymentAmount()); accountIncomeService.updateById(accountIncome); } } salesLedgerProductMapper.updateById(salesLedgerProduct); } @@ -122,15 +96,6 @@ BigDecimal subtract = receiptPayment.getReceiptPaymentAmount().subtract(byId.getReceiptPaymentAmount()); salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(subtract)); salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal())); // ä¿®æ¹è´¢å¡æ¶å ¥è®°å½ LambdaQueryWrapper<AccountIncome> accountIncomeLambdaQueryWrapper = new LambdaQueryWrapper<>(); accountIncomeLambdaQueryWrapper.eq(AccountIncome::getBusinessId, receiptPayment.getId()) .eq(AccountIncome::getBusinessType, 1); AccountIncome accountIncome = accountIncomeService.getOne(accountIncomeLambdaQueryWrapper); if(null!=accountIncome){ accountIncome.setIncomeMoney(receiptPayment.getReceiptPaymentAmount()); accountIncomeService.updateById(accountIncome); } salesLedgerProductMapper.updateById(salesLedgerProduct); receiptPayment.setReceiptPaymentAmount(byId.getReceiptPaymentAmount()); receiptPayment.setReceiptPaymentType(byId.getReceiptPaymentType()); @@ -155,11 +120,6 @@ salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal())); salesLedgerProductMapper.updateById(salesLedgerProduct); } // å é¤è´¢å¡æ¶å ¥è®°å½ LambdaQueryWrapper<AccountIncome> accountIncomeLambdaQueryWrapper = new LambdaQueryWrapper<>(); accountIncomeLambdaQueryWrapper.in(AccountIncome::getBusinessId, ids) .eq(AccountIncome::getBusinessType, 1); accountIncomeService.remove(accountIncomeLambdaQueryWrapper); return receiptPaymentMapper.delete(delQuery); } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -8,7 +8,6 @@ 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.service.AccountIncomeService; import com.ruoyi.basic.enums.ApplicationTypeEnum; import com.ruoyi.basic.enums.RecordTypeEnum; import com.ruoyi.basic.mapper.CustomerMapper; @@ -27,7 +26,6 @@ import com.ruoyi.framework.security.LoginUser; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.other.mapper.TempFileMapper; import com.ruoyi.other.pojo.TempFile; import com.ruoyi.production.mapper.*; import com.ruoyi.production.service.ProductionProductMainService; import com.ruoyi.project.system.domain.SysDept; @@ -44,7 +42,6 @@ import com.ruoyi.sales.vo.SalesLedgerVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FilenameUtils; import org.jetbrains.annotations.Nullable; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -55,15 +52,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.math.BigDecimal; import java.math.RoundingMode; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.YearMonth; @@ -86,7 +78,6 @@ private static final String LOCK_PREFIX = "contract_no_lock:"; private static final long LOCK_WAIT_TIMEOUT = 10; // éçå¾ è¶ æ¶æ¶é´ï¼ç§ï¼ private static final long LOCK_EXPIRE_TIME = 30; // éèªå¨è¿ææ¶é´ï¼ç§ï¼ private final AccountIncomeService accountIncomeService; private final SalesLedgerMapper salesLedgerMapper; private final CustomerMapper customerMapper; private final SalesLedgerProductMapper salesLedgerProductMapper; src/main/resources/mapper/account/AccountIncomeMapper.xml
ÎļþÒÑɾ³ý src/main/resources/mapper/account/sales/AccountSalesCollectionMapper.xml
@@ -85,5 +85,13 @@ order by sor.id DESC </select> <select id="selectIncomeStats" resultType="com.ruoyi.home.dto.IncomeExpenseAnalysisDto"> SELECT DATE_FORMAT(collection_date, #{dateFormat}) AS dateStr, IFNULL(SUM(collection_amount), 0) AS amount FROM account_sales_collection WHERE collection_date BETWEEN #{startDate} AND #{endDate} GROUP BY dateStr ORDER BY dateStr </select> </mapper>