已添加1个文件
已修改9个文件
122 ■■■■■ 文件已修改
src/main/java/com/ruoyi/production/bean/vo/ProductionAccountExportVo.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/ProductionAccountController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/ProductionAccountService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductionAccountServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/controller/StockInventoryController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/pojo/StockInRecord.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/StockInventoryService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-hmcl.yml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/bean/vo/ProductionAccountExportVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.ruoyi.production.bean.vo;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
 * ç”Ÿäº§æ ¸ç®—明细导出
 */
@Data
public class ProductionAccountExportVo {
    @Excel(name = "生产日期", dateFormat = "yyyy-MM-dd", sort = 1)
    private LocalDate schedulingDate;
    @Excel(name = "生产人", sort = 2)
    private String schedulingUserName;
    @Excel(name = "产品大类", sort = 3)
    private String productName;
    @Excel(name = "规格型号", sort = 4)
    private String productModelName;
    @Excel(name = "单位", sort = 5)
    private String unit;
    @Excel(name = "工序", sort = 6)
    private String process;
    @Excel(name = "工时(h)", sort = 7)
    private BigDecimal workHour;
    @Excel(name = "生产数量", sort = 8)
    private BigDecimal quantity;
    @Excel(name = "工时定额", sort = 9)
    private BigDecimal workHours;
    @Excel(name = "工资", sort = 10)
    private BigDecimal wages;
}
src/main/java/com/ruoyi/production/controller/ProductionAccountController.java
@@ -9,8 +9,10 @@
import com.ruoyi.production.service.ProductionAccountService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -38,4 +40,10 @@
    public R<IPage<ProductionProductMainDto>> listProductionDetails(ProductionAccountDto productionAccountDto, Page page) {
        return R.ok(productionAccountService.listProductionDetails(productionAccountDto,page));
    }
    @PostMapping("/export")
    @Operation(summary = "导出生产核算明细")
    public void export(HttpServletResponse response, ProductionAccountDto dto) {
        productionAccountService.exportDetails(response, dto);
    }
}
src/main/java/com/ruoyi/production/service/ProductionAccountService.java
@@ -7,6 +7,7 @@
import com.ruoyi.production.bean.vo.ProductionAccountVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.production.pojo.ProductionAccount;
import jakarta.servlet.http.HttpServletResponse;
/**
 * <p>
@@ -20,4 +21,6 @@
    IPage<ProductionAccountVo> listPage(Page<ProductionAccountDto> page, ProductionAccountDto dto);
    IPage<ProductionProductMainDto> listProductionDetails(ProductionAccountDto productionAccountDto, Page page);
    void exportDetails(HttpServletResponse response, ProductionAccountDto dto);
}
src/main/java/com/ruoyi/production/service/impl/ProductionAccountServiceImpl.java
@@ -3,17 +3,23 @@
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.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.production.bean.dto.ProductionAccountDto;
import com.ruoyi.production.bean.dto.ProductionProductMainDto;
import com.ruoyi.production.bean.vo.ProductionAccountExportVo;
import com.ruoyi.production.bean.vo.ProductionAccountVo;
import com.ruoyi.production.mapper.ProductionAccountMapper;
import com.ruoyi.production.mapper.ProductionProductMainMapper;
import com.ruoyi.production.pojo.ProductionAccount;
import com.ruoyi.production.service.ProductionAccountService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@Service
@RequiredArgsConstructor
@@ -35,6 +41,22 @@
        return productionProductMainMapper.listProductionDetails(normalizeDateQuery(dto), page);
    }
    @Override
    public void exportDetails(HttpServletResponse response, ProductionAccountDto dto) {
        ProductionAccountDto query = normalizeDateQuery(dto);
        IPage<ProductionProductMainDto> page = productionProductMainMapper.listProductionDetails(query, new Page<>(1, -1));
        List<ProductionAccountExportVo> exportList = new ArrayList<>();
        if (page != null && page.getRecords() != null) {
            for (ProductionProductMainDto item : page.getRecords()) {
                ProductionAccountExportVo vo = new ProductionAccountExportVo();
                BeanUtils.copyProperties(item, vo);
                exportList.add(vo);
            }
        }
        ExcelUtil<ProductionAccountExportVo> util = new ExcelUtil<>(ProductionAccountExportVo.class);
        util.exportExcel(response, exportList, "生产核算");
    }
    private ProductionAccountDto normalizeDateQuery(ProductionAccountDto dto) {
        // è§„范日期查询范围,补齐缺失的开始或结束时间
        if (dto == null) {
src/main/java/com/ruoyi/stock/controller/StockInventoryController.java
@@ -124,6 +124,12 @@
        return R.ok(stockInventoryService.stockInventoryPage(stockInventoryDto,page));
    }
    @PostMapping("/exportStockInventoryPage")
    @Operation(summary = "库存报表导出")
    public void exportStockInventoryPage(HttpServletResponse response, StockInventoryDto stockInventoryDto) {
        stockInventoryService.exportStockInventoryPage(response,stockInventoryDto);
    }
    @GetMapping("/stockInAndOutRecord")
    @Operation(summary = "统计各个产品的入库和出库记录")
    public R stockInAndOutRecord(StockInventoryDto stockInventoryDto,Page page) {
src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
@@ -1,5 +1,7 @@
package com.ruoyi.stock.dto;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.stock.pojo.StockInRecord;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -8,30 +10,37 @@
@Data
@ExcelIgnoreUnannotated
public class StockInRecordDto extends StockInRecord {
    /**
     * äº§å“åç§°
     */
    @Excel(name = "产品名称")
    private String productName;
    /**
     * äº§å“è§„æ ¼
     */
    @Excel(name = "产品规格")
    private String model;
    /**
     * æ‰¹æ¬¡å·
     */
    @Excel(name = "批次号")
    private String batchNo;
    /**
     * äº§å“å•位
     */
    @Excel(name = "产品单位")
    private String unit;
    private String timeStr;
    @Excel(name = "入库人")
    private String createBy;
    //现存量
    @Excel(name = "现存量")
    private String currentStock;
    @Schema(description = "顶部父产品id")
@@ -41,6 +50,7 @@
    private List<Long> ids;
    @Schema(description = "源单号")
    @Excel(name = "源单号")
    private String sourceOrderNo;
}
src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.enums.ReviewStatusEnum;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -26,9 +27,11 @@
    private Long id;
    @Schema(description = "入库批次")
    @Excel(name = "入库批次")
    private String inboundBatches;
    @Schema(description = "入库数量")
    @Excel(name = "入库数量")
    private BigDecimal stockInNum;
    @Schema(description = "批号")
@@ -57,6 +60,7 @@
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "入库时间")
    private LocalDateTime createTime;
    @Schema(description = "创建用户")
src/main/java/com/ruoyi/stock/service/StockInventoryService.java
@@ -40,6 +40,7 @@
    void exportStockInventory(HttpServletResponse response, StockInventoryDto stockInventoryDto);
    IPage<StockInRecordDto> stockInventoryPage(StockInventoryDto stockInventoryDto,Page page);
    void exportStockInventoryPage(HttpServletResponse response, StockInventoryDto stockInventoryDto);
    IPage<StockInventoryDto> stockInAndOutRecord(StockInventoryDto stockInventoryDto,Page page);
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -391,7 +391,6 @@
    @Override
    public void exportStockInventory(HttpServletResponse response, StockInventoryDto stockInventoryDto) {
        List<StockInventoryExportData> list = stockInventoryMapper.listStockInventoryExportData(stockInventoryDto);
        ExcelUtil<StockInventoryExportData> util = new ExcelUtil<>(StockInventoryExportData.class);
        util.exportExcel(response, list, "库存信息");
@@ -403,6 +402,13 @@
    }
    @Override
    public void exportStockInventoryPage(HttpServletResponse response, StockInventoryDto stockInventoryDto) {
        List<StockInRecordDto> list = stockInventoryMapper.stockInventoryPage(stockInventoryDto,new Page(-1,-1)).getRecords();
        ExcelUtil<StockInRecordDto> util = new ExcelUtil<>(StockInRecordDto.class);
        util.exportExcel(response, list, "库存报表导出");
    }
    @Override
    public IPage<StockInventoryDto> stockInAndOutRecord(StockInventoryDto stockInventoryDto, Page page) {
        return stockInventoryMapper.stockInAndOutRecord(stockInventoryDto, page);
    }
src/main/resources/application-hmcl.yml
@@ -7,7 +7,7 @@
  # ç‰ˆæƒå¹´ä»½
  copyrightYear: 2025
  # æ–‡ä»¶è·¯å¾„ ç¤ºä¾‹ï¼ˆ Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
  profile: /data/javaWork/product-inventory-management/file
  profile: /javaWork/product-inventory-management/file
  # èŽ·å–ip地址开关
  addressEnabled: false
@@ -76,9 +76,9 @@
    druid:
      # ä¸»åº“数据源
      master:
        url: jdbc:mysql://172.17.0.1:11101/product-inventory-management-hmcl?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://182.127.106.203:3306/product-inventory-management-hmcl?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: xd@123456..
        password: hmcl@123456..
      # ä»Žåº“数据源
      slave:
        # ä»Žæ•°æ®æºå¼€å…³/默认关闭
@@ -152,7 +152,7 @@
      #      host: localhost
      host: 172.17.0.1
      # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
      port: 11102
      port: 6379
      # æ•°æ®åº“索引
      database: 1
      # å¯†ç 
@@ -255,11 +255,11 @@
# æ–‡ä»¶ä¸Šä¼ é…ç½®
file:
  temp-dir: /data/javaWork/product-inventory-management/file/temp/uploads   # ä¸´æ—¶ç›®å½• åŽæœŸåˆ é™¤
  upload-dir: /data/javaWork/product-inventory-management/file/prod/uploads # æ­£å¼ç›®å½• åŽæœŸåˆ é™¤
  path: /data/javaWork/product-inventory-management/file/path/uploads # ä¸Šä¼ ç›®å½•
  temp-dir: /javaWork/product-inventory-management/file/temp/uploads   # ä¸´æ—¶ç›®å½• åŽæœŸåˆ é™¤
  upload-dir: /javaWork/product-inventory-management/file/prod/uploads # æ­£å¼ç›®å½• åŽæœŸåˆ é™¤
  path: /javaWork/product-inventory-management/file/path/uploads # ä¸Šä¼ ç›®å½•
  urlPrefix: /prod-api/common # é“¾æŽ¥å‰ç¼€
  domain: http://36.213.90.123:9522 # åŸŸåå‰ç¼€
  domain: http://182.127.106.203:81 # åŸŸåå‰ç¼€
  expired: 120 # è¿‡æœŸæ—¶é—´(单位:分钟)
  useLimit: 10 # ä½¿ç”¨æ¬¡æ•°
  compress: true # æ˜¯å¦åŽ‹ç¼©