| src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/vo/SalesLedgerVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/sales/SalesLedgerMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -3,7 +3,10 @@ public enum RecordTypeEnum { SHIPPING_INFO("shipping_info"), INSPECTION_TASK("inspection_task"), PDA_VERSION("pda_version"); PDA_VERSION("pda_version"), SALES_LEDGER("sales_ledger"), SUPPLIER_MANAGE("supplier_manage"), APPROVAL_PROCESS("approval_process"); private final String type; RecordTypeEnum(String type) { this.type = type; } src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.enums.ApplicationTypeEnum; import com.ruoyi.basic.enums.RecordTypeEnum; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; @@ -19,6 +21,7 @@ import com.ruoyi.sales.pojo.SalesLedger; import com.ruoyi.sales.service.ICommonFileService; import com.ruoyi.sales.service.ISalesLedgerService; import com.ruoyi.sales.vo.SalesLedgerVo; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.ApiParam; @@ -28,6 +31,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.basic.utils.FileUtil; import java.io.FileNotFoundException; import java.io.IOException; @@ -55,6 +59,7 @@ private ICommonFileService commonFileService; private InvoiceLedgerMapper invoiceLedgerMapper; private ReceiptPaymentMapper receiptPaymentMapper; private final FileUtil fileUtil; /** * å¯¼å ¥éå®å°è´¦ @@ -149,13 +154,13 @@ @PostMapping("/export") public void export(HttpServletResponse response, SalesLedgerDto salesLedgerDto) { Page page = new Page(-1,-1); IPage<SalesLedger> salesLedgerIPage = listPage(page, salesLedgerDto); ExcelUtil<SalesLedger> util = new ExcelUtil<SalesLedger>(SalesLedger.class); IPage<SalesLedgerVo> salesLedgerIPage = listPage(page, salesLedgerDto); ExcelUtil<SalesLedgerVo> util = new ExcelUtil<SalesLedgerVo>(SalesLedgerVo.class); if(salesLedgerIPage == null){ util.exportExcel(response, new ArrayList<>(), "éå®å°è´¦æ°æ®"); return; } List<SalesLedger> list = salesLedgerIPage.getRecords(); List<SalesLedgerVo> list = salesLedgerIPage.getRecords(); util.exportExcel(response, list, "éå®å°è´¦æ°æ®"); } @@ -168,8 +173,8 @@ Page page = new Page(); page.setCurrent(-1); page.setSize(-1); IPage<SalesLedger> salesLedgerIPage = listPage(page, salesLedgerDto); ExcelUtil<SalesLedger> util = new ExcelUtil<SalesLedger>(SalesLedger.class); IPage<SalesLedgerVo> salesLedgerIPage = listPage(page, salesLedgerDto); ExcelUtil<SalesLedgerVo> util = new ExcelUtil<SalesLedgerVo>(SalesLedgerVo.class); util.exportExcel(response, salesLedgerIPage == null ? new ArrayList<>() : salesLedgerIPage.getRecords(), "导åºå¼ç¥¨ç»è®°å表"); } @@ -251,8 +256,8 @@ * æ¥è¯¢éå®å°è´¦å表 */ @GetMapping("/listPage") public IPage<SalesLedger> listPage(Page page, SalesLedgerDto salesLedgerDto) { IPage<SalesLedger> iPage = salesLedgerService.selectSalesLedgerListPage(page, salesLedgerDto); public IPage<SalesLedgerVo> listPage(Page page, SalesLedgerDto salesLedgerDto) { IPage<SalesLedgerVo> iPage = salesLedgerService.selectSalesLedgerListPage(page, salesLedgerDto); // æ¥è¯¢ç»æä¸ºç©º,ç´æ¥è¿å if (CollectionUtils.isEmpty(iPage.getRecords())) { @@ -295,10 +300,10 @@ } } for (SalesLedger salesLedger : iPage.getRecords()) { Long ledgerId = salesLedger.getId(); for (SalesLedgerVo salesLedgerVo : iPage.getRecords()) { Long ledgerId = salesLedgerVo.getId(); // ååæ»éé¢ BigDecimal contractAmount = salesLedger.getContractAmount() == null ? BigDecimal.ZERO : salesLedger.getContractAmount(); BigDecimal contractAmount = salesLedgerVo.getContractAmount() == null ? BigDecimal.ZERO : salesLedgerVo.getContractAmount(); // å¼ç¥¨æ»é¢å忬¾æ»é¢ BigDecimal invoiceTotal = invoiceTotals.getOrDefault(ledgerId, BigDecimal.ZERO); BigDecimal receiptPaymentAmountTotal = receiptTotals.getOrDefault(ledgerId, BigDecimal.ZERO); @@ -315,15 +320,17 @@ noReceiptPaymentAmountTotal = BigDecimal.ZERO; } salesLedger.setNoInvoiceAmountTotal(noInvoiceAmountTotal); salesLedger.setInvoiceTotal(invoiceTotal); salesLedger.setReceiptPaymentAmountTotal(receiptPaymentAmountTotal); salesLedger.setNoReceiptAmount(noReceiptPaymentAmountTotal); salesLedgerVo.setNoInvoiceAmountTotal(noInvoiceAmountTotal); salesLedgerVo.setInvoiceTotal(invoiceTotal); salesLedgerVo.setReceiptPaymentAmountTotal(receiptPaymentAmountTotal); salesLedgerVo.setNoReceiptAmount(noReceiptPaymentAmountTotal); // å¦æå·²ç»æè¿å¼ç¥¨æå款æä½,åä¸å 许ç¼è¾ boolean hasInvoiceOperation = invoiceTotal.compareTo(BigDecimal.ZERO) > 0; boolean hasReceiptOperation = receiptPaymentAmountTotal.compareTo(BigDecimal.ZERO) > 0; salesLedger.setIsEdit(!(hasInvoiceOperation || hasReceiptOperation)); salesLedgerVo.setIsEdit(!(hasInvoiceOperation || hasReceiptOperation)); salesLedgerVo.setStorageBlobVOs(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.FILE, RecordTypeEnum.SALES_LEDGER, ledgerId)); } if (ObjectUtils.isNotEmpty(salesLedgerDto.getStatus())) { src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.basic.dto.StorageBlobDTO; import com.ruoyi.sales.pojo.CommonFile; import com.ruoyi.sales.pojo.SalesLedgerProduct; import io.swagger.v3.oas.annotations.media.Schema; @@ -58,4 +59,6 @@ @Schema(description = "äº¤è´§æ¥æ") private LocalDate deliveryDate; private List<StorageBlobDTO> storageBlobDTOs; } src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
@@ -10,6 +10,7 @@ import com.ruoyi.sales.dto.SalesTrendDto; import com.ruoyi.sales.dto.StatisticsTableDto; import com.ruoyi.sales.pojo.SalesLedger; import com.ruoyi.sales.vo.SalesLedgerVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -52,7 +53,7 @@ * @param salesLedgerDto * @return */ IPage<SalesLedger> selectSalesLedgerListPage(Page page, @Param("salesLedgerDto") SalesLedgerDto salesLedgerDto); IPage<SalesLedgerVo> selectSalesLedgerListPage(Page page, @Param("salesLedgerDto") SalesLedgerDto salesLedgerDto); /** * ææä»½ç»è®¡è®¢åæ°ãéå®é¢ï¼æ¯æäº§å大类ã客æ·åç§°çéï¼ src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
@@ -11,6 +11,7 @@ import com.ruoyi.sales.dto.SalesLedgerDto; import com.ruoyi.sales.pojo.SalesLedger; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.vo.SalesLedgerVo; import org.springframework.web.multipart.MultipartFile; import jakarta.annotation.Nullable; @@ -47,7 +48,7 @@ List<MonthlyAmountDto> getAmountHalfYear(Integer type); IPage<SalesLedger> selectSalesLedgerListPage(Page page, SalesLedgerDto salesLedgerDto); IPage<SalesLedgerVo> selectSalesLedgerListPage(Page page, SalesLedgerDto salesLedgerDto); AjaxResult importData(MultipartFile file); src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -10,10 +10,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.service.AccountIncomeService; import com.ruoyi.basic.dto.CustomerPrivatePoolDto; import com.ruoyi.basic.enums.ApplicationTypeEnum; import com.ruoyi.basic.enums.RecordTypeEnum; import com.ruoyi.basic.mapper.CustomerMapper; import com.ruoyi.basic.mapper.CustomerPrivatePoolMapper; import com.ruoyi.basic.mapper.ProductModelMapper; import com.ruoyi.basic.pojo.Customer; import com.ruoyi.basic.utils.FileUtil; import com.ruoyi.common.enums.FileNameType; import com.ruoyi.common.enums.SaleEnum; import com.ruoyi.common.exception.base.BaseException; @@ -41,6 +44,7 @@ import com.ruoyi.sales.mapper.*; import com.ruoyi.sales.pojo.*; import com.ruoyi.sales.service.ISalesLedgerService; import com.ruoyi.sales.vo.SalesLedgerVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FilenameUtils; @@ -111,6 +115,7 @@ private final PurchaseReturnOrderProductsMapper purchaseReturnOrderProductsMapper; private final SysUserMapper sysUserMapper; private final CustomerPrivatePoolMapper customerPrivatePoolMapper; private final FileUtil fileUtil; @Override public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) { @@ -317,7 +322,7 @@ } @Override public IPage<SalesLedger> selectSalesLedgerListPage(Page page, SalesLedgerDto salesLedgerDto) { public IPage<SalesLedgerVo> selectSalesLedgerListPage(Page page, SalesLedgerDto salesLedgerDto) { return salesLedgerMapper.selectSalesLedgerListPage(page, salesLedgerDto); } @@ -575,7 +580,6 @@ @Override @Transactional(rollbackFor = Exception.class) public int addOrUpdateSalesLedger(SalesLedgerDto salesLedgerDto) { try { // 1. æ ¡éªå®¢æ·ä¿¡æ¯ CustomerPrivatePoolDto customer = customerPrivatePoolMapper.selectInfo(salesLedgerDto.getCustomerId()); if (customer == null) { @@ -608,14 +612,11 @@ ); } // 5. è¿ç§»ä¸´æ¶æä»¶å°æ£å¼ç®å½ if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) { migrateTempFilesToFormal(salesLedger.getId(), salesLedgerDto.getTempFileIds()); // 5. ä¿åæä»¶ if (salesLedgerDto.getStorageBlobDTOs() != null && !salesLedgerDto.getStorageBlobDTOs().isEmpty()) { fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.SALES_LEDGER, salesLedger.getId(), salesLedgerDto.getStorageBlobDTOs()); } return 1; } catch (IOException e) { throw new BaseException("æä»¶è¿ç§»å¤±è´¥: " + e.getMessage()); } } /** src/main/java/com/ruoyi/sales/vo/SalesLedgerVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.ruoyi.sales.vo; import com.ruoyi.basic.dto.StorageBlobVO; import com.ruoyi.sales.pojo.SalesLedger; import lombok.Data; import java.util.List; @Data public class SalesLedgerVo extends SalesLedger { private List<StorageBlobVO> storageBlobVOs; } src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -42,7 +42,7 @@ </where> </select> <select id="selectSalesLedgerListPage" resultType="com.ruoyi.sales.pojo.SalesLedger"> <select id="selectSalesLedgerListPage" resultType="com.ruoyi.sales.vo.SalesLedgerVo"> SELECT T1.id, T1.sales_contract_no, T1.customer_contract_no,