From 6ed42390d7231b0d26700898ee2922732043effa Mon Sep 17 00:00:00 2001 From: liyong <18434998025@163.com> Date: 星期四, 19 六月 2025 16:20:34 +0800 Subject: [PATCH] 2025-06-19 增值税对比 + 问题修改 --- src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 46 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java index 1b33c06..a85755e 100644 --- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java +++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java @@ -2,15 +2,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; 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.basic.mapper.CustomerMapper; import com.ruoyi.basic.pojo.Customer; import com.ruoyi.common.exception.base.BaseException; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.other.mapper.TempFileMapper; import com.ruoyi.other.pojo.TempFile; +import com.ruoyi.project.system.domain.SysDept; +import com.ruoyi.project.system.mapper.SysDeptMapper; import com.ruoyi.sales.dto.MonthlyAmountDto; import com.ruoyi.sales.dto.SalesLedgerDto; import com.ruoyi.sales.mapper.*; @@ -69,7 +75,7 @@ private final InvoiceLedgerMapper invoiceLedgerMapper; @Autowired - private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper; + private SysDeptMapper sysDeptMapper; @Value("${file.upload-dir}") private String uploadDir; @@ -82,13 +88,10 @@ @Override public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) { - LambdaQueryWrapper<SalesLedger> queryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.isNotBlank(salesLedgerDto.getCustomerName())) { - queryWrapper.eq(SalesLedger::getCustomerName, salesLedgerDto.getCustomerName()); - } - return salesLedgerMapper.selectList(queryWrapper); + return salesLedgerMapper.selectSalesLedgerList(salesLedgerDto); } + @Override public SalesLedgerDto getSalesLedgerWithProducts(SalesLedgerDto salesLedgerDto) { // 1. 鏌ヨ涓昏〃 SalesLedger salesLedger = salesLedgerMapper.selectById(salesLedgerDto.getId()); @@ -100,6 +103,14 @@ LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>(); productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId()); List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper); + for (SalesLedgerProduct product : products) { + product.setOriginalNoInvoiceNum(product.getNoInvoiceNum()); + // 鎻愪緵涓存椂鏈紑绁ㄦ暟锛屾湭寮�绁ㄩ噾棰濅緵鍓嶆璁$畻 + product.setTempnoInvoiceAmount(product.getNoInvoiceAmount()); + product.setTempNoInvoiceNum(product.getNoInvoiceNum()); + product.setRegister(SecurityUtils.getLoginUser().getUser().getNickName()); + product.setRegisterDate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + } // 3.鏌ヨ涓婁紶鏂囦欢 LambdaQueryWrapper<CommonFile> salesLedgerFileWrapper = new LambdaQueryWrapper<>(); @@ -120,7 +131,7 @@ @Override public List<Map<String, Object>> getSalesNo() { LambdaQueryWrapper<SalesLedger> queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.select(SalesLedger::getId, SalesLedger::getSalesContractNo); + queryWrapper.select(SalesLedger::getId, SalesLedger::getSalesContractNo, SalesLedger::getProjectName); // 鑾峰彇鍘熷鏌ヨ缁撴灉 List<Map<String, Object>> result = salesLedgerMapper.selectMaps(queryWrapper); @@ -232,8 +243,13 @@ monthlyAmounts.add(monthlyAmount); } - + Collections.reverse(monthlyAmounts); return monthlyAmounts; + } + + @Override + public IPage<SalesLedger> selectSalesLedgerListPage(Page page, SalesLedgerDto salesLedgerDto) { + return salesLedgerMapper.selectSalesLedgerListPage(page, salesLedgerDto); } // 鍐呴儴绫荤敤浜庡瓨鍌ㄨ仛鍚堢粨鏋� @@ -448,7 +464,7 @@ if (!insertList.isEmpty()) { for (SalesLedgerProduct salesLedgerProduct : insertList) { salesLedgerProduct.setType(type); - salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity().intValue()); + salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity()); salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice()); salesLedgerProductMapper.insert(salesLedgerProduct); } @@ -490,11 +506,19 @@ throw new RuntimeException("鑾峰彇鍚堝悓缂栧彿鐢熸垚閿佸け璐ワ細瓒呮椂"); } - // 2. 鏌ヨ褰撳ぉ宸插瓨鍦ㄧ殑搴忓垪鍙凤紙涓庡師閫昏緫涓�鑷达級 + // 2. 鏌ヨ褰撳ぉ/鍏徃宸插瓨鍦ㄧ殑搴忓垪鍙凤紙涓庡師閫昏緫涓�鑷达級 + Long tenantId = SecurityUtils.getLoginUser().getTenantId(); + if (null != tenantId) { + //鑾峰彇鍏徃缂栧彿 + SysDept sysDept = sysDeptMapper.selectDeptById(tenantId.longValue()); + if (!ObjectUtils.isEmpty(sysDept)) { + datePart = (StringUtils.isEmpty(sysDept.getDeptNick()) ? "" : sysDept.getDeptNick()) + datePart; + } + } List<Integer> existingSequences = salesLedgerMapper.selectSequencesByDate(datePart); int nextSequence = findFirstMissingSequence(existingSequences); - return datePart + String.format("%02d", nextSequence); + return datePart + String.format("%03d", nextSequence); } finally { // 3. 閲婃斁閿侊紙浣跨敤Lua鑴氭湰淇濊瘉鍘熷瓙鎬э紝閬垮厤璇垹鍏朵粬绾跨▼鐨勯攣锛� String luaScript = "if redis.call('GET', KEYS[1]) == ARGV[1] then return redis.call('DEL', KEYS[1]) else return 0 end"; -- Gitblit v1.9.3