06ea9d365e7dfea600ea5081b7a1bd77934af48d..fd7446cbdb4f852cd0d9098aa3f103fd15edbfbe
9 天以前 yaowanxin
财务管理的存货核算获取数据接口,统计数据类
fd7446 对比 | 目录
9 天以前 yaowanxin
财务管理的固定资产核算获取台账接口
b4ee4f 对比 | 目录
已添加2个文件
已修改7个文件
161 ■■■■■ 文件已修改
src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/dto/DeviceAssetInfoDto.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/dto/InventoryInformationDto.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
@@ -11,6 +11,7 @@
import com.ruoyi.device.pojo.DeviceMaintenance;
import com.ruoyi.device.service.IDeviceLedgerService;
import com.ruoyi.device.service.IDeviceMaintenanceService;
import com.ruoyi.dto.DateQueryDto;
import com.ruoyi.framework.aspectj.lang.annotation.Anonymous;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.annotations.Api;
@@ -84,7 +85,14 @@
    public void export(HttpServletResponse response, Long[] ids) {
         deviceLedgerService.export(response, ids);
    }
    /**
     *
     */
    @GetMapping("/report/forms")
    @ApiOperation("查询设备台账图表数据")
    public AjaxResult report() {
        return AjaxResult.success(deviceLedgerService.report());
    }
    @PostMapping("import")
    @ApiModelProperty("导入设备台账")
    public AjaxResult importData(MultipartFile file) throws IOException {
src/main/java/com/ruoyi/device/dto/DeviceAssetInfoDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.ruoyi.device.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
 * è®¾å¤‡èµ„产信息Dto-资产报表
 */
@Data
public class DeviceAssetInfoDto {
    /**
     * è®¾å¤‡æ€»æ•°
     */
    private Integer totalEquipment;
    /**
     * èµ„产原值
     */
    private BigDecimal totalOriginalValue;
    /**
     * ç´¯è®¡æŠ˜æ—§
     */
    private BigDecimal totalDepreciation;
    /**
     * å‡€å€¼
     */
    private BigDecimal totalNetValue;
}
src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
@@ -3,14 +3,17 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.device.dto.DeviceAssetInfoDto;
import com.ruoyi.device.dto.DeviceLedgerDto;
import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.dto.DateQueryDto;
import com.ruoyi.framework.web.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Objects;
public interface IDeviceLedgerService  extends IService<DeviceLedger> {
    IPage<DeviceLedgerDto> queryPage(Page page, DeviceLedgerDto deviceLedger);
@@ -22,4 +25,6 @@
    void export(HttpServletResponse response, Long[] ids);
    Boolean importData(MultipartFile file) throws IOException;
    DeviceAssetInfoDto report();
}
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -8,11 +8,13 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.device.dto.DeviceAssetInfoDto;
import com.ruoyi.device.dto.DeviceLedgerDto;
import com.ruoyi.device.execl.DeviceLedgerExeclDto;
import com.ruoyi.device.mapper.DeviceLedgerMapper;
import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.device.service.IDeviceLedgerService;
import com.ruoyi.dto.DateQueryDto;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
@@ -24,10 +26,12 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@Service
@AllArgsConstructor
@@ -119,4 +123,15 @@
        return true;
    }
    @Override
    public DeviceAssetInfoDto report() {
        List<DeviceLedger> list = deviceLedgerMapper.selectList(null);
        DeviceAssetInfoDto deviceAssetInfoDto = new DeviceAssetInfoDto();
        deviceAssetInfoDto.setTotalEquipment(list.stream().map(DeviceLedger::getNumber).reduce(BigDecimal.ZERO, BigDecimal::add).intValue());
        deviceAssetInfoDto.setTotalOriginalValue(list.stream().map(DeviceLedger::getTaxIncludingPriceTotal).reduce(BigDecimal.ZERO, BigDecimal::add));
        deviceAssetInfoDto.setTotalNetValue(list.stream().map(DeviceLedger::getUnTaxIncludingPriceTotal).reduce(BigDecimal.ZERO, BigDecimal::add));
        deviceAssetInfoDto.setTotalDepreciation(deviceAssetInfoDto.getTotalOriginalValue().subtract(deviceAssetInfoDto.getTotalNetValue()));
        return deviceAssetInfoDto;
    }
}
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -72,7 +72,11 @@
        IPage<ProcurementPageDto> result =procurementRecordService.listPage(page, procurementDto);
        return AjaxResult.success(result);
    }
    @GetMapping("/listReport")
    @ApiOperation(value = "查询库存图表数据")
    public AjaxResult listReport() {
        return AjaxResult.success(procurementRecordService.getReportList());
    }
    @GetMapping("/listPageCopy")
    @Log(title = "采购入库-入库管理-入库查询", businessType = BusinessType.OTHER)
    public AjaxResult listPageCopy(Page page, ProcurementPageDto procurementDto) {
src/main/java/com/ruoyi/procurementrecord/dto/InventoryInformationDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.ruoyi.procurementrecord.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
 * å­˜è´§æ ¸ç®—信息Dto-资产报表
 */
@Data
public class InventoryInformationDto {
    /**
     * æ€»åº“存数量
     */
    private Integer totalInventoryCount;
    /**
     * æ€»åº“存金额
     */
    private BigDecimal totalInventoryValue;
    /**
     * åº“存变动数量
     */
    private Integer inventoryChangeCount;
    /**
     * åº“存变动金额
     */
    private BigDecimal inventoryChangeValue;
}
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
@@ -34,4 +34,6 @@
    void exportCopy(HttpServletResponse response);
    Map<String, Object> getReportList(Page page, ProcurementPageDto procurementDto);
    InventoryInformationDto getReportList();
}
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -336,6 +336,69 @@
    }
    @Override
    public InventoryInformationDto getReportList() {
        InventoryInformationDto inventoryInformationDto = new InventoryInformationDto();
        IPage<ProcurementPageDto> procurementPageDtoIPage = this.listPage(new Page<>(1, -1), new ProcurementPageDto());
        if(CollectionUtils.isEmpty(procurementPageDtoIPage.getRecords())){
            return inventoryInformationDto;
        }
        // è®¡ç®—总库存数量
        inventoryInformationDto.setTotalInventoryCount(procurementPageDtoIPage.getRecords().stream()
                .map(ProcurementPageDto::getInboundNum0)
                .reduce(BigDecimal.ZERO, BigDecimal::add)
                .intValue());
        // è®¡ç®—总库存金额-ProcurementPageDto里每个对象的inboundNum0值和taxInclusiveUnitPrice的乘积,之后相加得到总库存金额
        BigDecimal totalInventoryValue = procurementPageDtoIPage.getRecords().stream()
                // è¿‡æ»¤ç©ºå¯¹è±¡ï¼Œé¿å…NPE
                .filter(Objects::nonNull)
                // å¤„理每个对象的空值:null转为0
                .map(dto -> {
                    // å…¥åº“数量:null â†’ 0
                    BigDecimal inboundNum0 = Optional.ofNullable(dto.getInboundNum0()).orElse(BigDecimal.ZERO);
                    // å«ç¨Žå•价:null â†’ 0
                    BigDecimal taxInclusiveUnitPrice = Optional.ofNullable(dto.getTaxInclusiveUnitPrice()).orElse(BigDecimal.ZERO);
                    // è®¡ç®—单个对象的库存金额:数量 Ã— å«ç¨Žå•ä»·
                    return inboundNum0.multiply(taxInclusiveUnitPrice);
                })
                // æ‰€æœ‰å•个金额求和,初始值为0
                .reduce(BigDecimal.ZERO, BigDecimal::add);
        // è®¾ç½®æ€»åº“存金额
        inventoryInformationDto.setTotalInventoryValue(totalInventoryValue);
        // è®¡ç®—库存变动数量-ProcurementPageDto里每个对象的inboundNum值和inboundNum0值的差值,之后相加得到库存变动数量
        inventoryInformationDto.setInventoryChangeCount(procurementPageDtoIPage.getRecords().stream()
                // è¿‡æ»¤ç©ºå¯¹è±¡ï¼Œé¿å…NPE
                .filter(Objects::nonNull)
                // å¤„理每个对象的空值:null转为0
                .map(dto -> {
                    // å…¥åº“数量:null â†’ 0
                    BigDecimal inboundNum = Optional.ofNullable(dto.getInboundNum()).orElse(BigDecimal.ZERO);
                    // å¾…出库数量:null â†’ 0
                    BigDecimal inboundNum0 = Optional.ofNullable(dto.getInboundNum0()).orElse(BigDecimal.ZERO);
                    // è®¡ç®—单个对象的库存变动数量:数量 - å¾…出库数量
                    return inboundNum.subtract(inboundNum0);
                })
                // æ‰€æœ‰å•个变动数量求和,初始值为0
                .reduce(BigDecimal.ZERO, BigDecimal::add)
                .intValue());
        // è®¡ç®—库存变动金额ProcurementPageDto里每个对象的taxInclusiveTotalPrice值的和
        BigDecimal inventoryChangeValue = procurementPageDtoIPage.getRecords().stream()
                // è¿‡æ»¤ç©ºå¯¹è±¡ï¼Œé¿å…NPE
                .filter(Objects::nonNull)
                // å¤„理每个对象的空值:null转为0
                .map(dto -> {
                    // å«ç¨Žæ€»ä»·ï¼šnull â†’ 0
                    BigDecimal taxInclusiveTotalPrice = Optional.ofNullable(dto.getTaxInclusiveTotalPrice()).orElse(BigDecimal.ZERO);
                    // è®¡ç®—单个对象的入库库存金额:含税总价
                    return taxInclusiveTotalPrice;
                })
                // æ‰€æœ‰å•个变动金额求和,初始值为0
                .reduce(BigDecimal.ZERO, BigDecimal::add);
        // è®¾ç½®åº“存变动金额
        inventoryInformationDto.setInventoryChangeValue(inventoryChangeValue.subtract(totalInventoryValue));
        return inventoryInformationDto;
    }
    @Override
    public int add(ProcurementAddDto procurementDto) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        // æ‰¹é‡æ–°å¢ž
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -55,10 +55,10 @@
        <where>
            1 = 1
            <if test="req.supplierName != null and req.supplierName != ''">
                and t3.supplier_name like  concat('%',#{req.supplierName},'%')
                and t3.supplier_name like concat('%',#{req.supplierName},'%')
            </if>
            <if test="req.timeStr != null and req.timeStr != ''">
                and t1.create_time like  concat('%',#{req.timeStr},'%')
                and t1.create_time like concat('%',#{req.timeStr},'%')
            </if>
        </where>
    </select>