yys
1.导出接口开发
2.营销管理-回款登记-回款状态(回款完成,未完成)
3.采购管理-付款登记-加一个付款进度
4.采购管理-付款流水-采购合同号筛选
5.仓储物流-所有-查询条件加一个日期
6.仓储物流-入库管理-加一个库存预警数量字段
7.生产管控-生产订单-加一个订单状态-已完成、未完成
8.协同办公-通知公告-加一个时间限制,过时后状态改为已过期
已添加4个文件
已修改45个文件
976 ■■■■■ 文件已修改
src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesServiceController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceDto.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/collaborativeApproval/pojo/Notice.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/collaborativeApproval/service/impl/NoticeServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/execl/DeviceMaintenanceExeclDto.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/execl/DeviceRepairExeclDto.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/equipmentenergyconsumption/controller/EnergyPeriodController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/equipmentenergyconsumption/controller/EquipmentEnergyConsumptionController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/equipmentenergyconsumption/dto/EquipmentEnergyConsumptionDto.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/equipmentenergyconsumption/pojo/EnergyPeriod.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/controller/TimingTaskController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/pojo/InspectionTask.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/pojo/TimingTask.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/dto/Details.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/SalesLedgerSchedulingController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/DaiDto.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingProcessDto.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/SalesLedgerSchedulingService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseReportDto.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/dto/VatDto.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/pojo/SalesQuotation.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/waterrecord/controller/WaterRecordController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-zyrqCopy.yml 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/warehouse/DocumentationReturnManagementMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/aftersalesservice/controller/AfterSalesServiceController.java
@@ -2,9 +2,11 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.aftersalesservice.dto.AfterSalesServiceDto;
import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
import com.ruoyi.aftersalesservice.service.AfterSalesServiceService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.equipmentenergyconsumption.pojo.EquipmentEnergyConsumption;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
@@ -12,12 +14,16 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.purchase.dto.VatDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
@@ -44,6 +50,38 @@
        return AjaxResult.success(listPage);
    }
    @Log(title = "售后服务-反馈登记", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ApiOperation("售后服务-反馈登记")
    public void export(HttpServletResponse response) {
        Page page = new Page(-1,-1);
        AfterSalesService afterSalesService = new AfterSalesService();
        IPage<AfterSalesService> listPage = afterSalesServiceService.listPage(page, afterSalesService);
        List<AfterSalesServiceDto> list = new ArrayList<>();
        listPage.getRecords().forEach(item -> {
            AfterSalesServiceDto dto = new AfterSalesServiceDto();
            BeanUtils.copyProperties(item, dto);
            dto.setStatusName(item.getStatus().toString());
            list.add(dto);
        });
        ExcelUtil<AfterSalesServiceDto> util = new ExcelUtil<AfterSalesServiceDto>(AfterSalesServiceDto.class);
        util.exportExcel(response, list , "反馈登记");
    }
    @Log(title = "售后服务-售后处理", businessType = BusinessType.EXPORT)
    @PostMapping("/exportTwo")
    @ApiOperation("售后服务-售后处理")
    public void exportTwo(HttpServletResponse response) {
        Page page = new Page(-1,-1);
        AfterSalesService afterSalesService = new AfterSalesService();
        IPage<AfterSalesService> listPage = afterSalesServiceService.listPage(page, afterSalesService);
        listPage.getRecords().forEach(item -> {
            item.setStatusName(item.getStatus().toString());
        });
        ExcelUtil<AfterSalesService> util = new ExcelUtil<AfterSalesService>(AfterSalesService.class);
        util.exportExcel(response, listPage.getRecords() , "售后处理");
    }
    @PostMapping("/add")
    @ApiOperation("售后服务-新增")
    @Log(title = "售后服务-新增", businessType = BusinessType.INSERT)
src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
package com.ruoyi.aftersalesservice.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * @author :yys
 * @date : 2025/11/3 11:14
 */
@Data
public class AfterSalesServiceDto {
    /**
     * çŠ¶æ€ 1-待处理 2-已处理
     */
    @ApiModelProperty("状态 1-待处理 2-已处理")
    private Integer status;
    @Excel(name = "状态", readConverterExp = "1=待处理,2=已处理")
    private String statusName;
    /**
     * ç™»è®°äººåç§°
     */
    @ApiModelProperty("登记人名称")
    @Excel(name = "登记人名称")
    private String checkNickName;
    /**
     * å®¢æˆ·åç§°
     */
    @ApiModelProperty("客户名称")
    @Excel(name = "客户名称")
    private String customerName;
    /**
     * é—®é¢˜æè¿°
     */
    @ApiModelProperty("问题描述")
    @Excel(name = "问题描述")
    private String proDesc;
    /**
     * åé¦ˆæ—¥æœŸ
     */
    @ApiModelProperty("反馈日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "反馈日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date feedbackDate;
    @ApiModelProperty("关联部门")
    @Excel(name = "关联部门")
    private String deptName;
}
src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -32,6 +33,10 @@
    @ApiModelProperty("状态 1-待处理 2-已处理")
    private Integer status;
    @Excel(name = "状态", readConverterExp = "1=待处理,2=已处理")
    private String statusName;
    /**
     * ç™»è®°äºº
     */
@@ -42,6 +47,7 @@
     * ç™»è®°äººåç§°
     */
    @ApiModelProperty("登记人名称")
    @Excel(name = "登记人名称")
    private String checkNickName;
    /**
@@ -54,24 +60,28 @@
     * å¤„理人名称
     */
    @ApiModelProperty("处理人名称")
    @Excel(name = "处理人名称")
    private String disposeNickName;
    /**
     * å®¢æˆ·åç§°
     */
    @ApiModelProperty("客户名称")
    @Excel(name = "客户名称")
    private String customerName;
    /**
     * é—®é¢˜æè¿°
     */
    @ApiModelProperty("问题描述")
    @Excel(name = "问题描述")
    private String proDesc;
    /**
     * å¤„理结果
     */
    @ApiModelProperty("处理结果")
    @Excel(name = "处理结果")
    private String disRes;
    /**
@@ -80,6 +90,7 @@
    @ApiModelProperty("反馈日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "反馈日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date feedbackDate;
    /**
@@ -88,6 +99,7 @@
    @ApiModelProperty("处理日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date disDate;
src/main/java/com/ruoyi/collaborativeApproval/pojo/Notice.java
@@ -1,11 +1,13 @@
package com.ruoyi.collaborativeApproval.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * å…¬å‘Šè¡¨
@@ -39,6 +41,8 @@
    @ApiModelProperty("状态(0草稿 1发布 2已下线)")
    private Integer status;
    private String statusName;
    /**
     * å…¬å‘Šå†…容
     */
@@ -52,6 +56,12 @@
    private Integer priority;
    /**
     * è¿‡æœŸæ—¶é—´
     */
    private Date expirationDate;
    /**
     * åˆ›å»ºè€…
     */
    @TableField(fill = FieldFill.INSERT)
@@ -61,6 +71,7 @@
     * åˆ›å»ºæ—¶é—´
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
src/main/java/com/ruoyi/collaborativeApproval/service/impl/NoticeServiceImpl.java
@@ -24,7 +24,18 @@
    @Override
    public IPage<NoticeDTO> listPage(Page page, NoticeDTO noticeDTO) {
        return noticeMapper.listPage(page, noticeDTO);
        IPage<NoticeDTO> noticeDTOIPage = noticeMapper.listPage(page, noticeDTO);
        noticeDTOIPage.getRecords().forEach(item -> {
            // æ ¹æ®è¿‡æœŸæ—¶é—´åˆ¤æ–­statusName
            if (item.getExpirationDate() == null) {
                item.setStatusName("未知");
            }else if(item.getExpirationDate().getTime() < System.currentTimeMillis()){
                item.setStatusName("已过期");
            } else{
                item.setStatusName("正常");
            }
        });
        return noticeDTOIPage;
    }
    @Override
src/main/java/com/ruoyi/device/execl/DeviceMaintenanceExeclDto.java
@@ -21,7 +21,7 @@
    @ApiModelProperty("规格型号")
    private String deviceModel;
    @Excel(name = "计划保养日期")
    @Excel(name = "计划保养日期", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 30)
    @ApiModelProperty("计划保养日期")
    private Date maintenancePlanTime;
@@ -30,7 +30,7 @@
    private String maintenanceActuallyName;
    @ApiModelProperty("实际保养日期")
    @Excel(name = "实际保养日期")
    @Excel(name = "实际保养日期", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 30)
    private LocalDateTime maintenanceActuallyTime;
    @ApiModelProperty("保养结果 0 ç»´ä¿® 1 å®Œå¥½")
@@ -42,11 +42,11 @@
    private String status;
    @ApiModelProperty("创建时间")
    @Excel(name = "录入时间")
    @Excel(name = "录入时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 30)
    private Date createTime;
    @ApiModelProperty("创建人")
    @Excel(name = "录入人")
//    @Excel(name = "录入人")
    private String createUser;
}
src/main/java/com/ruoyi/device/execl/DeviceRepairExeclDto.java
@@ -22,7 +22,7 @@
    private String deviceModel;
    @ApiModelProperty("报修时间")
    @Excel(name = "报修时间")
    @Excel(name = "报修时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date repairTime;
    @ApiModelProperty("报修人")
@@ -38,7 +38,7 @@
    private String maintenanceName;
    @ApiModelProperty("维修时间")
    @Excel(name = "维修时间")
    @Excel(name = "维修时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date maintenanceTime;
    @ApiModelProperty("维修结果")
@@ -50,10 +50,10 @@
    private String statusStr;
    @ApiModelProperty("创建时间")
    @Excel(name = "录入时间")
    @Excel(name = "录入时间", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDateTime createTime;
    @Excel(name = "录入人")
//    @Excel(name = "录入人")
    @ApiModelProperty("创建人")
    private String createUser;
src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
@@ -54,17 +54,13 @@
    @Override
    public void export(HttpServletResponse response, Long[] ids) {
        ArrayList<Long> arrayList = new ArrayList<>();
        Arrays.stream(ids).map(id -> {
            return arrayList.add( id);
        });
        List<DeviceMaintenance> supplierManageList = deviceMaintenanceMapper.selectBatchIds(arrayList);
        List<DeviceMaintenance> supplierManageList = deviceMaintenanceMapper.selectList(null);
        ArrayList<DeviceMaintenanceExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
        supplierManageList.stream().forEach(deviceMaintenance -> {
        supplierManageList.forEach(deviceMaintenance -> {
            DeviceMaintenanceExeclDto deviceRepairExeclDto = new DeviceMaintenanceExeclDto();
            BeanUtils.copyProperties(deviceMaintenance,deviceRepairExeclDto);
            deviceRepairExeclDto.setStatus(deviceMaintenance.getStatus() == 0 ? "待维修" : "完结");
            deviceRepairExeclDto.setMaintenanceResult(deviceMaintenance.getMaintenanceResult() == 0 ? "ç»´ä¿®" : "完好");
            deviceRepairExeclDto.setMaintenanceResult(deviceMaintenance.getMaintenanceResult() != null && deviceMaintenance.getMaintenanceResult() == 0 ? "ç»´ä¿®" : "完好");
            deviceLedgerExeclDtos.add(deviceRepairExeclDto);
        });
src/main/java/com/ruoyi/equipmentenergyconsumption/controller/EnergyPeriodController.java
@@ -66,8 +66,11 @@
    @PostMapping("/export")
    @ApiOperation("导出用电时段")
    public void export(HttpServletResponse response) {
        Page page = new Page(-1,-1);
        EnergyPeriod energyPeriod = new EnergyPeriod();
        IPage<EnergyPeriod> listPage = energyPeriodService.listPage(page, energyPeriod);
        ExcelUtil<EnergyPeriod> util = new ExcelUtil<EnergyPeriod>(EnergyPeriod.class);
        util.exportExcel(response, null , "用电时段数据");
        util.exportExcel(response, listPage.getRecords() , "用电时段数据");
    }
}
src/main/java/com/ruoyi/equipmentenergyconsumption/controller/EquipmentEnergyConsumptionController.java
@@ -6,6 +6,7 @@
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.equipmentenergyconsumption.dto.EquipmentEnergyConsumptionDto;
import com.ruoyi.equipmentenergyconsumption.pojo.EquipmentEnergyConsumption;
import com.ruoyi.equipmentenergyconsumption.service.EquipmentEnergyConsumptionService;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
@@ -14,12 +15,14 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
@@ -93,8 +96,11 @@
    @PostMapping("/export")
    @ApiOperation("导出设备能耗")
    public void export(HttpServletResponse response) {
        Page page = new Page<>(-1,-1);
        EquipmentEnergyConsumption equipmentEnergyConsumption = new EquipmentEnergyConsumption();
        IPage<EquipmentEnergyConsumption> listPage = equipmentEnergyConsumptionService.listPage(page, equipmentEnergyConsumption);
        ExcelUtil<EquipmentEnergyConsumption> util = new ExcelUtil<EquipmentEnergyConsumption>(EquipmentEnergyConsumption.class);
        util.exportExcel(response, null , "客户档案数据");
        util.exportExcel(response, listPage.getRecords() , "导出设备能耗");
    }
    @GetMapping("/listPageByTrend")
@@ -105,6 +111,26 @@
        return AjaxResult.success(listPage);
    }
    /**
     * å¯¼å‡ºèƒ½æºè¶‹åŠ¿
     */
    @Log(title = "导出能源趋势", businessType = BusinessType.EXPORT)
    @PostMapping("/exportTwo")
    @ApiOperation("导出能源趋势")
    public void exportTwo(HttpServletResponse response) {
        Page page = new Page<>(-1,-1);
        EquipmentEnergyConsumption equipmentEnergyConsumption = new EquipmentEnergyConsumption();
        IPage<EquipmentEnergyConsumption> listPage = equipmentEnergyConsumptionService.listPageByTrend(page, equipmentEnergyConsumption);
        List<EquipmentEnergyConsumptionDto> list = new ArrayList<>();
        listPage.getRecords().forEach(item -> {
            EquipmentEnergyConsumptionDto dto = new EquipmentEnergyConsumptionDto();
            BeanUtils.copyProperties(item, dto);
            list.add(dto);
        });
        ExcelUtil<EquipmentEnergyConsumptionDto> util = new ExcelUtil<EquipmentEnergyConsumptionDto>(EquipmentEnergyConsumptionDto.class);
        util.exportExcel(response, list , "导出能源趋势");
    }
}
src/main/java/com/ruoyi/equipmentenergyconsumption/dto/EquipmentEnergyConsumptionDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
package com.ruoyi.equipmentenergyconsumption.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * @author :yys
 * @date : 2025/11/3 15:22
 */
@Data
public class EquipmentEnergyConsumptionDto {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * è®¾å¤‡ç¼–号
     */
    @ApiModelProperty("设备编号")
    @Excel(name = "规格型号")
    private String code;
    /**
     * è®¾å¤‡åç§°
     */
    @ApiModelProperty("设备名称")
    @Excel(name = "设备名称")
    private String name;
    /**
     * é¢å®šåŠŸçŽ‡
     */
    @ApiModelProperty("额定功率")
//    @Excel(name = "额定功率")
    private String powerRating;
    /**
     * å®žé™…功率
     */
    @ApiModelProperty("实际功率")
//    @Excel(name = "实际功率")
    private String powerActual;
    /**
     * å½“日用电量
     */
    @ApiModelProperty("当日用电量")
//    @Excel(name = "当日用电量")
    private BigDecimal dayNum;
    /**
     * æ˜¨ç”¨ç”µé‡
     */
    @ApiModelProperty("昨用电量")
    @TableField(exist = false)
    @Excel(name = "昨用电量")
    private BigDecimal toDayNum;
    /**
     * æœ¬æœˆå¹³å‡ç”µé‡ï¼ˆ30天计算)
     */
    @ApiModelProperty("本月平均电量(30天计算)")
    @TableField(exist = false)
    @Excel(name = "本月平均电量")
    private BigDecimal avgNum;
    /**
     * è¶‹åŠ¿
     */
    @ApiModelProperty("趋势")
    @TableField(exist = false)
    @Excel(name = "趋势")
    private String trend;
    /**
     * ç´¯è®¡ç”¨ç”µé‡
     */
    @ApiModelProperty("累计用电量")
//    @Excel(name = "累计用电量")
    private BigDecimal sumNum;
    /**
     * è¿è¡Œæ—¶é—´
     */
    @ApiModelProperty("运行时间")
    @Excel(name = "运行时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date runDate;
    /**
     * æ¯æ—¥é™åˆ¶ç”µé‡
     */
    @ApiModelProperty("每日限制电量")
//    @Excel(name = "每日限制电量")
    private BigDecimal everyNum;
}
src/main/java/com/ruoyi/equipmentenergyconsumption/pojo/EnergyPeriod.java
@@ -18,7 +18,7 @@
     * æ—¥æœŸ
     */
    @ApiModelProperty("日期")
    @Excel(name = "日期")
    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date date;
    /**
src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java
@@ -2,9 +2,11 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.inspectiontask.dto.InspectionTaskDto;
import com.ruoyi.inspectiontask.dto.TimingTaskDto;
import com.ruoyi.inspectiontask.pojo.InspectionTask;
import com.ruoyi.inspectiontask.service.InspectionTaskService;
import io.swagger.annotations.Api;
@@ -13,6 +15,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/**
 * @author :yys
@@ -36,6 +40,20 @@
        return R.ok(list);
    }
    /**
     * å¯¼å‡º
     */
    @PostMapping("/export")
    @ApiOperation(value = "导出定时任务记录")
    public void export(HttpServletResponse response) {
        Page page = new Page<>(-1,-1);
        InspectionTaskDto timingTask = new InspectionTaskDto();
        IPage<InspectionTaskDto> list = inspectionTaskService.selectInspectionTaskList(page,timingTask);
        ExcelUtil<InspectionTaskDto> util = new ExcelUtil<>(InspectionTaskDto.class);
        util.exportExcel(response, list.getRecords(), "导出定时任务记录");
    }
    /**
     * å·¡æ£€ä»»åŠ¡è¡¨æ–°å¢žä¿®æ”¹
     */
src/main/java/com/ruoyi/inspectiontask/controller/TimingTaskController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.inspectiontask.dto.TimingTaskDto;
@@ -13,6 +14,8 @@
import org.quartz.SchedulerException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/**
 * @author :yys
@@ -38,6 +41,19 @@
    }
    /**
     * å¯¼å‡º
     */
    @PostMapping("/export")
    @ApiOperation(value = "导出定时任务")
    public void export(HttpServletResponse response) {
        Page page = new Page<>(-1,-1);
        TimingTaskDto timingTask = new TimingTaskDto();
        IPage<TimingTaskDto> list = timingTaskService.selectTimingTaskList(page,timingTask);
        ExcelUtil<TimingTaskDto> util = new ExcelUtil<>(TimingTaskDto.class);
        util.exportExcel(response, list.getRecords(), "导出定时任务");
    }
    /**
     * å®šæ—¶å·¡æ£€ä»»åŠ¡è¡¨æ–°å¢žä¿®æ”¹
     */
    @PostMapping("/addOrEditTimingTask")
src/main/java/com/ruoyi/inspectiontask/pojo/InspectionTask.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -27,6 +28,7 @@
    private Long id;
    @ApiModelProperty(value = "设备名称")
    @Excel(name = "巡检任务名称")
    private String taskName;
    @ApiModelProperty(value = "设备id")
@@ -36,21 +38,26 @@
    private String inspectorId;
    @ApiModelProperty(value = "执行巡检的人员姓名")
    @Excel(name = "执行巡检人员")
    private String inspector;
    @ApiModelProperty(value = "任务附加说明或特殊情况记录")
    @Excel(name = "备注")
    private String remarks;
    @ApiModelProperty(value = "任务登记人ID")
    private Long registrantId;
    @ApiModelProperty(value = "任务登记人姓名")
    @Excel(name = "登记人")
    private String registrant;
    @ApiModelProperty(value = "频次")
    @Excel(name = "频次")
    private String frequencyType;
    @ApiModelProperty(value = "时间细节")
    @Excel(name = "开始日期与时间")
    private String frequencyDetail;
    @ApiModelProperty(value = "巡检地点详细描述")
@@ -67,6 +74,7 @@
    @TableField(fill = com.baomidou.mybatisplus.annotation.FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "登记日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @ApiModelProperty(value = "最后修改该记录的用户")
src/main/java/com/ruoyi/inspectiontask/pojo/TimingTask.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -31,21 +32,25 @@
    private Long id;
    @ApiModelProperty(value = "设备名称")
    @Excel(name = "巡检任务名称")
    private String taskName;
    @ApiModelProperty(value = "设备id")
    private Integer taskId;
    @ApiModelProperty(value = "巡检人")
    @Excel(name = "执行巡检人")
    private String inspectorIds;
    @ApiModelProperty(value = "巡检地点")
    private String inspectionLocation;
    @ApiModelProperty(value = "频次")
    @Excel(name = "频次")
    private String frequencyType;
    @ApiModelProperty(value = "频次详情")
    @Excel(name = "开始日期与时间")
    private String frequencyDetail;
    @ApiModelProperty(value = "下次执行时间")
@@ -58,15 +63,18 @@
    private boolean isActive;
    @ApiModelProperty(value = "备注")
    @Excel(name = "备注")
    private String remarks;
    @ApiModelProperty(value = "登记人id")
    private Long registrantId;
    @ApiModelProperty(value = "登记人")
    @Excel(name = "登记人")
    private String registrant;
    @ApiModelProperty(value = "登记日期")
    @Excel(name = "登记日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDate registrationDate;
    @ApiModelProperty(value = "状态")
src/main/java/com/ruoyi/procurementrecord/dto/Details.java
@@ -1,24 +1,16 @@
package com.ruoyi.procurementrecord.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author :yys
 * @date : 2025/7/7 16:17
 */
@Data
public class Details {
    private Integer id;
    private BigDecimal inboundQuantity;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public BigDecimal getInboundQuantity() {
        return inboundQuantity;
    }
    public void setInboundQuantity(BigDecimal inboundQuantity) {
        this.inboundQuantity = inboundQuantity;
    }
    private BigDecimal warnNum;
}
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementDto.java
@@ -20,6 +20,8 @@
    private Integer recordId;
    private BigDecimal warnNum;
    /**
     * å…¥åº“数量
     */
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -40,6 +40,9 @@
    @Excel(name = "入库数量")
    private BigDecimal inboundNum;
    @Excel(name = "预警数量")
    private BigDecimal warnNum;
    /**
     * å¾…出库数量
     */
@@ -54,6 +57,8 @@
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime createTime;
    private String timeStr;
    /**
     * å‡ºå…¥åº“æ—¶é—´
     */
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
@@ -25,6 +25,8 @@
    @Excel(name = "入库批次")
    private String inboundBatches;
    private BigDecimal warnNum;
    /**
     * åˆåŒå·
     */
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java
@@ -19,6 +19,8 @@
    private Integer id;
    private BigDecimal warnNum;
    /**
     * å‡ºå…¥åº“数量
     */
@@ -32,6 +34,8 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    private String timeStr;
    @Excel(name = "出库时间")
    private String time;
src/main/java/com/ruoyi/procurementrecord/dto/ProcurementUpdateDto.java
@@ -14,6 +14,8 @@
    private Integer id;
    private BigDecimal warnNum;
    private BigDecimal quantityStock;
    private List<Integer> ids;
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java
@@ -35,6 +35,11 @@
     * å…¥åº“数量
     */
    private BigDecimal inboundNum;
    /**
     * é¢„警数量
     */
    private BigDecimal warnNum;
//    /**
//     * æœ€ä½Žåº“存数量
//     */
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -103,6 +103,7 @@
    public int updatePro(ProcurementUpdateDto procurementDto) {
        ProcurementRecordStorage procurementRecordStorageById = getProcurementRecordById(procurementDto.getId());
        procurementRecordStorageById.setInboundNum(procurementDto.getQuantityStock());
        procurementRecordStorageById.setWarnNum(procurementDto.getWarnNum());
        procurementRecordStorageById.setUpdateUser(SecurityUtils.getLoginUser().getUserId());
        procurementRecordStorageById.setUpdateTime(LocalDateTime.now());
        return procurementRecordMapper.updateById(procurementRecordStorageById);
@@ -348,6 +349,7 @@
                    .salesLedgerProductId(detail.getId())
                    .inboundBatches(aLong.equals(0L) ? "第1批次" : "第"+ (aLong + 1) + "批次")
                    .inboundNum(detail.getInboundQuantity())
                    .warnNum(detail.getWarnNum())
                    .createTime(LocalDateTime.now())
                    .createUser(loginUser.getUserId())
                    .updateTime(LocalDateTime.now())
src/main/java/com/ruoyi/production/controller/SalesLedgerSchedulingController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
@@ -52,6 +53,17 @@
        salesLedgerSchedulingService.export(response);
    }
    /**
     * å¯¼å‡º
     * @param response
     */
    @PostMapping("/exportOne")
    @ApiOperation("生产管理-生产派工-导出")
    public void exportOne(HttpServletResponse response) {
        salesLedgerSchedulingService.exportOne(response);
    }
    @PostMapping("/productionDispatch")
    @Log(title = "生产管理-生产订单-生产派工", businessType = BusinessType.INSERT)
    @ApiOperation("生产管理-生产订单-生产派工")
@@ -69,6 +81,23 @@
        return AjaxResult.success(result);
    }
    /**
     * å¯¼å‡º
     * @param response
     */
    @PostMapping("/exportTwo")
    @ApiOperation("生产管理-工序排产-导出")
    public void exportTwo(HttpServletResponse response) {
        Page page = new Page(-1,-1);
        SalesLedgerSchedulingProcessDto salesLedgerSchedulingDto = new SalesLedgerSchedulingProcessDto();
        IPage<SalesLedgerSchedulingProcessDto> result = salesLedgerSchedulingService.listPageProcess(page,salesLedgerSchedulingDto);
        result.getRecords().forEach(item -> {
            item.setStatusName(item.getStatus().toString());
        });
        ExcelUtil<SalesLedgerSchedulingProcessDto> util = new ExcelUtil<>(SalesLedgerSchedulingProcessDto.class);
        util.exportExcel(response, result.getRecords(), "工序排产");
    }
    @DeleteMapping("/productionDispatchDelete")
    @Log(title = "生产管理-工序排产-取消排产", businessType = BusinessType.DELETE)
src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java
@@ -2,12 +2,14 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.production.dto.ProcessSchedulingDto;
import com.ruoyi.production.dto.ProductionReportDto;
import com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto;
import com.ruoyi.production.dto.SalesLedgerWorkDto;
import com.ruoyi.production.pojo.SalesLedgerWork;
import com.ruoyi.production.service.SalesLedgerWorkService;
@@ -18,6 +20,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -41,6 +44,24 @@
        return AjaxResult.success(listPage);
    }
    /**
     * å¯¼å‡º
     * @param response
     */
    @PostMapping("/export")
    @ApiOperation("生产管理-生产报工-导出")
    public void export(HttpServletResponse response) {
        Page page = new Page(-1,-1);
        SalesLedgerWorkDto salesLedgerSchedulingDto = new SalesLedgerWorkDto();
        IPage<SalesLedgerWorkDto> result = salesLedgerWorkService.listPage(page,salesLedgerSchedulingDto);
        result.getRecords().forEach(item -> {
            item.setDaiNum(item.getFinishedNum().subtract(item.getSchedulingNum()));
            item.setStatusName(item.getStatus().toString());
        });
        ExcelUtil<SalesLedgerWorkDto> util = new ExcelUtil<>(SalesLedgerWorkDto.class);
        util.exportExcel(response, result.getRecords(), "工序排产");
    }
    @GetMapping("/list")
    @Log(title = "生产报工-查询", businessType = BusinessType.OTHER)
    @ApiOperation("生产报工-查询")
src/main/java/com/ruoyi/production/dto/DaiDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,110 @@
package com.ruoyi.production.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @author :yys
 * @date : 2025/11/3 9:35
 */
@Data
public class DaiDto{
    @Excel(name = "待排数量")
    private BigDecimal daiNum;
    @ApiModelProperty(value = "销售产品ID")
    private Long salesLedgerProductId;
    @ApiModelProperty(value = "销售台账ID")
    private Long salesLedgerId;
    /**
     * é”€å”®åˆåŒå·
     */
    @Excel(name = "销售合同号")
    @ApiModelProperty(value = "销售合同号")
    private String salesContractNo;
    /**
     * å®¢æˆ·åˆåŒå·
     */
    @Excel(name = "客户合同号")
    @ApiModelProperty(value = "客户合同号")
    private String customerContractNo;
    /**
     * é¡¹ç›®åç§°
     */
    @Excel(name = "项目名称")
    @ApiModelProperty(value = "项目名称")
    private String projectName;
    /**
     * å½•入日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "录入日期", width = 30, dateFormat = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "录入日期")
    private Date entryDate;
    @ApiModelProperty(value = "录入日期开始")
    private String entryDateStart;
    @ApiModelProperty(value = "录入日期结束")
    private String entryDateEnd;
    /**
     * å®¢æˆ·åç§°
     */
    @Excel(name = "客户名称")
    @ApiModelProperty(value = "客户名称")
    private String customerName;
    /**
     * äº§å“å¤§ç±»
     */
    @Excel(name = "产品大类")
    @ApiModelProperty(value = "产品大类")
    private String productCategory;
    /**
     * è§„格型号
     */
    @Excel(name = "规格型号")
    @ApiModelProperty(value = "规格型号")
    private String specificationModel;
    /**
     * å•位
     */
    @Excel(name = "单位")
    @ApiModelProperty(value = "单位")
    private String unit;
    /**
     * æ•°é‡
     */
    @Excel(name = "数量")
    @ApiModelProperty(value = "数量")
    private BigDecimal quantity;
    /**
     * æŽ’产数量
     */
    @Excel(name = "排产数量")
    @ApiModelProperty(value = "排产数量")
    private BigDecimal schedulingNum;
    @ApiModelProperty(value = "租户ID")
    private Long tenantId;
}
src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingDto.java
@@ -113,6 +113,9 @@
    @ApiModelProperty(value = "完工数量")
    private BigDecimal successNum;
    @Excel(name = "状态")
    private String status;
    @ApiModelProperty(value = "租户ID")
    private Long tenantId;
src/main/java/com/ruoyi/production/dto/SalesLedgerSchedulingProcessDto.java
@@ -96,9 +96,11 @@
    /**
     * çŠ¶æ€
     */
    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private Integer status;
    @Excel(name = "状态", readConverterExp = "1=待排产,2=排产中,3=已排产")
    private String statusName;
    /**
     * æ´¾å·¥äºº
@@ -125,6 +127,7 @@
     * å·²æŽ’产数量
     */
    @ApiModelProperty(value = "已排产数量")
    @Excel(name = "已排产数量")
    private BigDecimal successNum;
    private Long tenantId;
src/main/java/com/ruoyi/production/dto/SalesLedgerWorkDto.java
@@ -1,5 +1,6 @@
package com.ruoyi.production.dto;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -27,6 +28,7 @@
     * æŽ’产人名称
     */
    @ApiModelProperty(value = "排产人名称")
    @Excel(name = "排产人")
    private String schedulingUserName;
@@ -34,13 +36,22 @@
     * æŽ’产数量
     */
    @ApiModelProperty(value = "排产数量")
    @Excel(name = "排产数量")
    private BigDecimal schedulingNum;
    /**
     * ç”Ÿäº§æ•°é‡
     */
    @ApiModelProperty(value = "生产数量")
    @Excel(name = "生产数量")
    private BigDecimal finishedNum;
    /**
     * å¾…生产数量
     */
    @ApiModelProperty(value = "待生产数量")
    @Excel(name = "待生产数量")
    private BigDecimal daiNum;
    /**
     * å·¥æ—¶å®šé¢
@@ -52,11 +63,13 @@
     * å·¥åº
     */
    @ApiModelProperty(value = "工序")
    @Excel(name = "工序")
    private String process;
    /**
     * æŽ’产日期
     */
    @ApiModelProperty(value = "排产日期")
    @Excel(name = "排产日期")
    private String schedulingDate;
    @ApiModelProperty(value = "开始时间")
@@ -70,4 +83,8 @@
    @ApiModelProperty(value = "报工状态")
    private Integer status;
    @Excel(name = "状态", readConverterExp = "1=待生产,2=生产中,3=已报工")
    private String statusName;
}
src/main/java/com/ruoyi/production/service/SalesLedgerSchedulingService.java
@@ -29,4 +29,6 @@
    int productionDispatchDelete(List<Long> ids);
    int processScheduling(List<ProcessSchedulingDto> processSchedulingDto);
    void exportOne(HttpServletResponse response);
}
src/main/java/com/ruoyi/production/service/impl/SalesLedgerSchedulingServiceImpl.java
@@ -6,10 +6,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto;
import com.ruoyi.production.dto.ProcessSchedulingDto;
import com.ruoyi.production.dto.ProductionDispatchAddDto;
import com.ruoyi.production.dto.SalesLedgerSchedulingDto;
import com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto;
import com.ruoyi.production.dto.*;
import com.ruoyi.production.mapper.SalesLedgerSchedulingMapper;
import com.ruoyi.production.mapper.SalesLedgerWorkMapper;
import com.ruoyi.production.pojo.SalesLedgerScheduling;
@@ -19,6 +16,7 @@
import com.ruoyi.project.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -26,6 +24,7 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@@ -61,6 +60,12 @@
                    .filter(j -> j.getSalesLedgerProductId().equals(i.getSalesLedgerProductId()))
                    .map(SalesLedgerWork::getFinishedNum)
                    .reduce(BigDecimal.ZERO, BigDecimal::add));
            // çŠ¶æ€ = æ•°é‡å’Œå®Œå·¥æ•°é‡æ¯”较
            if(i.getSchedulingNum().compareTo(i.getSuccessNum()) == 0){
                i.setStatus("已完成");
            }else{
                i.setStatus("未完成");
            }
        });
        return list;
    }
@@ -175,4 +180,22 @@
        }
        return 0;
    }
    @Override
    public void exportOne(HttpServletResponse response) {
        List<SalesLedgerSchedulingDto> list = salesLedgerSchedulingMapper.list();
        if(CollectionUtils.isEmpty(list)){
            throw new RuntimeException("无导出数据");
        }
        List<DaiDto> dais = new ArrayList<>();
        list.forEach(i -> {
            DaiDto daiDto = new DaiDto();
            BeanUtils.copyProperties(i, daiDto);
            // èŽ·å–å¾…æŽ’äº§æ•°é‡
            daiDto.setDaiNum(daiDto.getQuantity().subtract(i.getSchedulingNum()));
            dais.add(daiDto);
        });
        ExcelUtil<DaiDto> util = new ExcelUtil<>(DaiDto.class);
        util.exportExcel(response, dais, "生产派工");
    }
}
src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -9,13 +10,17 @@
import com.ruoyi.purchase.dto.VatDto;
import com.ruoyi.purchase.pojo.InvoicePurchase;
import com.ruoyi.purchase.service.IInvoicePurchaseService;
import com.ruoyi.waterrecord.pojo.WaterRecord;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
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;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@RestController
@@ -34,10 +39,31 @@
        return AjaxResult.success(result);
    }
    @Log(title = "采购报表-项目利润导出", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ApiOperation("采购报表-项目利润导出")
    public void export(HttpServletResponse response) {
        Page page = new Page(-1,-1);
        InvoicePurchaseReportDto waterRecord = new InvoicePurchaseReportDto();
        IPage<InvoicePurchaseReportDto> listPage = invoicePurchaseService.listPurchaseReport(page, waterRecord);
        ExcelUtil<InvoicePurchaseReportDto> util = new ExcelUtil<InvoicePurchaseReportDto>(InvoicePurchaseReportDto.class);
        util.exportExcel(response, listPage.getRecords() , "项目利润导出");
    }
    @Log(title = "采购报表-增值税比对", businessType = BusinessType.OTHER)
    @GetMapping("/listVat")
    public AjaxResult listVat(Page page,String month) {
        IPage<VatDto> result = invoicePurchaseService.listVat(page, month);
        return AjaxResult.success(result);
    }
    @Log(title = "采购报表-增值税比对", businessType = BusinessType.EXPORT)
    @PostMapping("/exportTwo")
    @ApiOperation("采购报表-增值税比对")
    public void exportTwo(HttpServletResponse response) {
        Page page = new Page(-1,-1);
        IPage<VatDto> result = invoicePurchaseService.listVat(page, null);
        ExcelUtil<VatDto> util = new ExcelUtil<VatDto>(VatDto.class);
        util.exportExcel(response, result.getRecords() , "增值税比对");
    }
}
src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseReportDto.java
@@ -1,5 +1,6 @@
package com.ruoyi.purchase.dto;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import lombok.Data;
/**
@@ -9,24 +10,32 @@
public class InvoicePurchaseReportDto {
    //销售合同号
    @Excel(name = "销售合同号")
    private String customerContractNo;
//    å®¢æˆ·åç§°
    @Excel(name = "客户名称")
    private String customerName;
//    é¡¹ç›®åç§°
    @Excel(name = "项目名称")
    private String projectName;
//    åˆåŒé‡‘额
    @Excel(name = "合同金额")
    private String contractAmount;
//    é‡‡è´­é‡‘额
    @Excel(name = "采购金额")
    private String purchaseAmount;
    private String saleTaxExclusiveTotalPrice;
    private String taxExclusiveTotalPrice;
//    åˆ©æ¶¦
    @Excel(name = "利润")
    private String balance;
    //    åˆ©æ¶¦çއ
    @Excel(name = "利润率")
    private String balanceRatio;
    //    å¢žå€¼ç¨Ž
    @Excel(name = "增值税")
    private String balanceAmount;
}
src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
@@ -28,6 +28,7 @@
    private String purchaseContractNumber;
    /**
     * ä¾›åº”商名称id
     */
src/main/java/com/ruoyi/purchase/dto/VatDto.java
@@ -1,5 +1,6 @@
package com.ruoyi.purchase.dto;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
@@ -9,14 +10,18 @@
public class VatDto {
    //月份
    @Excel(name = "月份")
    private String month ;
    //进项税
    @Excel(name = "进项税额")
    private BigDecimal jTaxAmount;
    //销项税
    @Excel(name = "销项税额")
    private BigDecimal xTaxAmount;
    @Excel(name = "销-进")
    private BigDecimal taxAmount;
}
src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
@@ -28,6 +28,13 @@
    private Long id;
    /**
     * çŠ¶æ€
     */
    @Excel(name = "状态")
    @TableField(exist = false)
    private String statusName;
    /**
     * é‡‡è´­å°è´¦id
     */
    private Long purchaseLedgerId;
src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -369,6 +369,10 @@
                ticketRegistrationIPage.setTotal(ticketRegistrationIPage.getRecords().size());
            }
        }
        ticketRegistrationIPage.getRecords().forEach(item -> {
            // å·²ä»˜æ¬¾é‡‘额 == å¾…付款金额
            item.setStatusName(item.getPaymentAmountTotal().compareTo(item.getInvoiceAmount()) == 0 ? "已完成付款" : "未完成付款");
        });
        return ticketRegistrationIPage;
    }
src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
@@ -1,11 +1,23 @@
package com.ruoyi.sales.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.aftersalesservice.dto.AfterSalesServiceDto;
import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.sales.dto.SalesQuotationDto;
import com.ruoyi.sales.service.SalesQuotationService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/sales/quotation")
@@ -16,6 +28,17 @@
    public AjaxResult getList(Page page, SalesQuotationDto salesQuotationDto) {
        return AjaxResult.success(salesQuotationService.listPage(page, salesQuotationDto));
    }
    @PostMapping("/export")
    public void export(HttpServletResponse response) {
        Page page = new Page(-1,-1);
        SalesQuotationDto afterSalesService = new SalesQuotationDto();
        IPage<SalesQuotationDto> listPage = salesQuotationService.listPage(page, afterSalesService);
        ExcelUtil<SalesQuotationDto> util = new ExcelUtil<SalesQuotationDto>(SalesQuotationDto.class);
        util.exportExcel(response, listPage.getRecords() , "反馈登记");
    }
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SalesQuotationDto salesQuotationDto) {
        return AjaxResult.success(salesQuotationService.add(salesQuotationDto));
src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
@@ -19,6 +19,11 @@
    @Excel(name = "客户合同号")
    private String customerContractNo;
    @ApiModelProperty(value = "状态")
    @Excel(name = "状态")
    private String statusName;
    @ApiModelProperty(value = "客户名称")
    @Excel(name = "客户名称")
    private String customerName;
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -36,6 +36,11 @@
    private Long salesLedgerId;
    /**
     * é¢„警数量
     */
    private BigDecimal warnNum;
    /**
     * äº§å“å¤§ç±»
     */
    @Excel(name = "产品大类")
src/main/java/com/ruoyi/sales/pojo/SalesQuotation.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -15,19 +16,24 @@
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value = "报价单编号")
    @Excel(name = "报价单编号")
    private String quotationNo;
    @ApiModelProperty(value = "客户名称")
    @Excel(name = "客户名称")
    private String customer;
    @ApiModelProperty(value = "业务员")
    @Excel(name = "业务员")
    private String salesperson;
    @ApiModelProperty(value = "报价日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报价日期", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDate quotationDate;
    @ApiModelProperty(value = "有效期至")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDate validDate;
    @ApiModelProperty(value = "付款方式")
    private String paymentMethod;
@@ -36,6 +42,7 @@
    @ApiModelProperty(value = "状态")
    private String status;
    @ApiModelProperty(value = "报价总金额")
    @Excel(name = "报价金额")
    private Double totalAmount;
    @ApiModelProperty(value = "备注")
src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -164,6 +164,15 @@
        if (receiptPaymentDto.getStatus()) {
            receiptPaymentDtoIPage.getRecords().removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getNoReceiptAmount()));
        }
        receiptPaymentDtoIPage.getRecords().forEach(item -> {
            // æ¯”较回款金额 == å¾…回款金额
            if (item.getInvoiceTotal().compareTo(item.getReceiptPaymentAmountTotal()) == 0) {
                item.setStatusName("已完成回款");
            }else{
                item.setStatusName("未完成回款");
            }
        });
        return receiptPaymentDtoIPage;
    }
src/main/java/com/ruoyi/waterrecord/controller/WaterRecordController.java
@@ -81,8 +81,11 @@
    @PostMapping("/export")
    @ApiOperation("导出用水管理")
    public void export(HttpServletResponse response) {
        Page page = new Page(-1,-1);
        WaterRecord waterRecord = new WaterRecord();
        IPage<WaterRecord> listPage = waterRecordService.listPage(page, waterRecord);
        ExcelUtil<WaterRecord> util = new ExcelUtil<WaterRecord>(WaterRecord.class);
        util.exportExcel(response, null , "用水管理");
        util.exportExcel(response, listPage.getRecords() , "用水管理");
    }
}
src/main/resources/application-zyrqCopy.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,219 @@
# é¡¹ç›®ç›¸å…³é…ç½®
ruoyi:
  # åç§°
  name: RuoYi
  # ç‰ˆæœ¬
  version: 3.8.9
  # ç‰ˆæƒå¹´ä»½
  copyrightYear: 2025
  # æ–‡ä»¶è·¯å¾„ ç¤ºä¾‹ï¼ˆ Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
  profile: /javaWork/product-inventory-management/file
  # èŽ·å–ip地址开关
  addressEnabled: false
  # éªŒè¯ç ç±»åž‹ math æ•°å­—计算 char å­—符验证
  captchaType: math
# å¼€å‘环境配置
server:
  # æœåŠ¡å™¨çš„HTTP端口,默认为8080
  port: 9030
  servlet:
    # åº”用的访问路径
    context-path: /
  tomcat:
    # tomcat的URI编码
    uri-encoding: UTF-8
    # è¿žæŽ¥æ•°æ»¡åŽçš„æŽ’队数,默认为100
    accept-count: 1000
    threads:
      # tomcat最大线程数,默认为200
      max: 800
      # Tomcat启动初始化的线程数,默认值10
      min-spare: 100
# æ—¥å¿—配置
logging:
  level:
    com.ruoyi: warn
    org.springframework: warn
minio:
  endpoint: http://114.132.189.42/
  port: 7019
  secure: false
  accessKey: admin
  secretKey: 12345678
  preview-expiry: 24 # é¢„览地址默认24小时
  default-bucket: demo-product
# ç”¨æˆ·é…ç½®
user:
  password:
    # å¯†ç æœ€å¤§é”™è¯¯æ¬¡æ•°
    maxRetryCount: 5
    # å¯†ç é”å®šæ—¶é—´ï¼ˆé»˜è®¤10分钟)
    lockTime: 10
# Spring配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    druid:
      # ä¸»åº“数据源
      master:
        url: jdbc:mysql://192.168.1.185:3306/product-inventory-management-zyrq?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: xd@123456..
      # ä»Žåº“数据源
      slave:
        # ä»Žæ•°æ®æºå¼€å…³/默认关闭
        enabled: false
        url:
        username:
        password:
      # åˆå§‹è¿žæŽ¥æ•°
      initialSize: 5
      # æœ€å°è¿žæŽ¥æ± æ•°é‡
      minIdle: 10
      # æœ€å¤§è¿žæŽ¥æ± æ•°é‡
      maxActive: 20
      # é…ç½®èŽ·å–è¿žæŽ¥ç­‰å¾…è¶…æ—¶çš„æ—¶é—´
      maxWait: 60000
      # é…ç½®è¿žæŽ¥è¶…æ—¶æ—¶é—´
      connectTimeout: 30000
      # é…ç½®ç½‘络超时时间
      socketTimeout: 60000
      # é…ç½®é—´éš”多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # é…ç½®ä¸€ä¸ªè¿žæŽ¥åœ¨æ± ä¸­æœ€å°ç”Ÿå­˜çš„æ—¶é—´ï¼Œå•位是毫秒
      minEvictableIdleTimeMillis: 300000
      # é…ç½®ä¸€ä¸ªè¿žæŽ¥åœ¨æ± ä¸­æœ€å¤§ç”Ÿå­˜çš„æ—¶é—´ï¼Œå•位是毫秒
      maxEvictableIdleTimeMillis: 900000
      # é…ç½®æ£€æµ‹è¿žæŽ¥æ˜¯å¦æœ‰æ•ˆ
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      webStatFilter:
        enabled: true
      statViewServlet:
        enabled: true
        # è®¾ç½®ç™½åå•,不填则允许所有访问
        allow:
        url-pattern: /druid/*
        # æŽ§åˆ¶å°ç®¡ç†ç”¨æˆ·åå’Œå¯†ç 
        login-username: ruoyi
        login-password: 123456
      filter:
        stat:
          enabled: true
          # æ…¢SQL记录
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true
  # èµ„源信息
  messages:
    # å›½é™…化资源文件路径
    basename: i18n/messages
  # æ–‡ä»¶ä¸Šä¼ 
  servlet:
    multipart:
      # å•个文件大小
      max-file-size: 1GB
      # è®¾ç½®æ€»ä¸Šä¼ çš„æ–‡ä»¶å¤§å°
      max-request-size: 2GB
  # æœåŠ¡æ¨¡å—
  devtools:
    restart:
      # çƒ­éƒ¨ç½²å¼€å…³
      enabled: false
  # redis é…ç½®
  redis:
    # åœ°å€
#    host: 127.0.0.1
    host: 192.168.1.185
    # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
    port: 6380
    # æ•°æ®åº“索引
    database: 5
    # å¯†ç 
#    password: root2022!
    password:
    # è¿žæŽ¥è¶…æ—¶æ—¶é—´
    timeout: 10s
    lettuce:
      pool:
        # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
        min-idle: 0
        # è¿žæŽ¥æ± ä¸­çš„æœ€å¤§ç©ºé—²è¿žæŽ¥
        max-idle: 8
        # è¿žæŽ¥æ± çš„æœ€å¤§æ•°æ®åº“连接数
        max-active: 8
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
# token配置
token:
  # ä»¤ç‰Œè‡ªå®šä¹‰æ ‡è¯†
  header: Authorization
  # ä»¤ç‰Œå¯†é’¥
  secret: abcdefghijklmnopqrstuvwxyz
  # ä»¤ç‰Œæœ‰æ•ˆæœŸï¼ˆé»˜è®¤30分钟)
  expireTime: 450
# MyBatis Plus配置
mybatis-plus:
  # æœç´¢æŒ‡å®šåŒ…别名   æ ¹æ®è‡ªå·±çš„项目来
  typeAliasesPackage: com.ruoyi.**.pojo
  # é…ç½®mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # åŠ è½½å…¨å±€çš„é…ç½®æ–‡ä»¶
  configLocation: classpath:mybatis/mybatis-config.xml
  global-config:
    enable-sql-runner: true
    db-config:
      id-type: auto
# PageHelper分页插件
pagehelper:
  helperDialect: mysql
  supportMethodsArguments: true
  params: count=countSql
# Swagger配置
swagger:
  # æ˜¯å¦å¼€å¯swagger
  enabled: true
  # è¯·æ±‚前缀
  pathMapping: /dev-api
# é˜²æ­¢XSS攻击
xss:
  # è¿‡æ»¤å¼€å…³
  enabled: true
  # æŽ’除链接(多个用逗号分隔)
  excludes: /system/notice
  # åŒ¹é…é“¾æŽ¥
  urlPatterns: /system/*,/monitor/*,/tool/*
# ä»£ç ç”Ÿæˆ
gen:
  # ä½œè€…
  author: ruoyi
  # é»˜è®¤ç”ŸæˆåŒ…路径 system éœ€æ”¹æˆè‡ªå·±çš„æ¨¡å—名称 å¦‚ system monitor tool
  packageName: com.ruoyi.project.system
  # è‡ªåŠ¨åŽ»é™¤è¡¨å‰ç¼€ï¼Œé»˜è®¤æ˜¯true
  autoRemovePre: false
  # è¡¨å‰ç¼€ï¼ˆç”Ÿæˆç±»åä¸ä¼šåŒ…含表前缀,多个用逗号分隔)
  tablePrefix: sys_
  # æ˜¯å¦å…è®¸ç”Ÿæˆæ–‡ä»¶è¦†ç›–到本地(自定义路径),默认不允许
  allowOverwrite: false
file:
  temp-dir: /javaWork/product-inventory-management/file/temp/uploads
  upload-dir: /javaWork/product-inventory-management/file/prod/uploads
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -12,6 +12,7 @@
            t2.unit,
            t2.quantity,
            t2.min_stock,
            t2.warn_num,
            t2.quantity as quantity0,
            t2.tax_rate,
            t2.tax_inclusive_unit_price,
@@ -46,7 +47,8 @@
        t1.inbound_num as inboundNum0,
        t1.create_time,
        t1.update_time,
        t1.create_by
        t1.create_by,
        t2.warn_num
        from  procurement_record_storage t1
                  left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
                  left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
@@ -54,6 +56,9 @@
            1 = 1
            <if test="req.supplierName != null and 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},'%')
            </if>
        </where>
    </select>
@@ -96,12 +101,13 @@
        t2.tax_inclusive_total_price,
        t2.tax_exclusive_total_price,
        t1.inbound_batches,
        t1.inbound_num,
        t1.inbound_num as inboundNum0,
        sum(t1.inbound_num) as inboundNum,
        sum(t1.inbound_num) as inboundNum0,
        t1.inbound_num as totalInboundNum,
        t1.create_time,
        t1.update_time,
        t1.create_by
        t1.create_by,
        t2.warn_num
        from  procurement_record_storage t1
        left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
        left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
@@ -109,6 +115,9 @@
            1 = 1
            <if test="req.supplierName != null and 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},'%')
            </if>
            <if test="req.reportDate != null">
                and t1.create_time >= #{req.reportDate} and t1.create_time &lt; DATE_ADD(#{req.reportDate}, INTERVAL 1 DAY)
@@ -126,6 +135,7 @@
                and t1.create_time &lt;= #{req.endDate}
            </if>
        </where>
        group by t3.supplier_name,t2.product_category,t2.specification_model
    </select>
    <select id="listCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy">
        select
src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
@@ -16,7 +16,8 @@
        t2.tax_exclusive_total_price,
        t1.inbound_num,
        t1.create_time,
        t1.create_by
        t1.create_by,
        t2.warn_num
        from  procurement_record_out t1
        left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
        left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
@@ -25,6 +26,9 @@
            <if test="req.supplierName != null and 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},'%')
            </if>
        </where>
    </select>
    <select id="list" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -179,6 +179,9 @@
            <if test="params.paymentDateEnd != null and params.paymentDateEnd !='' ">
                AND T1.payment_date &lt;= date_format(#{params.paymentDateEnd},'%Y-%m-%d')
            </if>
            <if test="params.purchaseContractNumber != null and params.purchaseContractNumber !='' ">
                AND t4.purchase_contract_number LIKE CONCAT('%',#{params.purchaseContractNumber},'%')
            </if>
        </where>
        ORDER BY T1.payment_date,T1.create_time DESC
    </select>
src/main/resources/mapper/warehouse/DocumentationReturnManagementMapper.xml
@@ -35,8 +35,8 @@
        from documentation_return_management dbm
        LEFT JOIN documentation doc on doc.id = dbm.documentation_id
        where dbm.returner IS NOT NULL
        <if test="documentationReturnManagement.returnStatus != null">
            and return_status = #{documentationReturnManagement.returnStatus}
        <if test="documentationReturnManagement.borrowStatus != null">
            and borrow_status = #{documentationReturnManagement.borrowStatus}
        </if>
        <if test="documentationReturnManagement.documentationId != null">
            and documentation_id = #{documentationReturnManagement.documentationId}