gongchunyi
2026-04-30 78b637613099f0e2e04e98c5f33c24f8e6c78c7a
fix: 质检内的工序修改为部件类型
已重命名1个文件
已修改8个文件
80 ■■■■ 文件已修改
doc/君歌化工.sql 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/home/controller/HomeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/home/dto/ProcessDataProductionStatisticsDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/home/service/HomeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/quality/pojo/QualityInspect.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductProcessMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/¾ý¸è»¯¹¤.sql
@@ -41,4 +41,7 @@
    MODIFY COLUMN `plan_start_time` datetime NULL DEFAULT NULL COMMENT '计划开始时间' AFTER `work_order_no`,
    MODIFY COLUMN `plan_end_time` datetime NULL DEFAULT NULL COMMENT '计划结束时间' AFTER `plan_start_time`,
    MODIFY COLUMN `actual_start_time` datetime NULL DEFAULT NULL COMMENT '实际开始时间' AFTER `plan_end_time`,
    MODIFY COLUMN `actual_end_time` datetime NULL DEFAULT NULL COMMENT '实际结束时间' AFTER `actual_start_time`;
    MODIFY COLUMN `actual_end_time` datetime NULL DEFAULT NULL COMMENT '实际结束时间' AFTER `actual_start_time`;
ALTER TABLE `product-inventory-management-jghg`.`quality_inspect`
    ADD COLUMN `process_type` int NULL DEFAULT NULL COMMENT '工序类型' AFTER `dept_id`;
src/main/java/com/ruoyi/home/controller/HomeController.java
@@ -174,7 +174,7 @@
    @GetMapping("/processDataProductionStatistics")
    @ApiOperation("工序数据生产统计数据")
    public AjaxResult processDataProductionStatistics(@DefaultType Integer type,@RequestParam(required = false) List<Long> processTypes) {
        List<processDataProductionStatisticsDto> list = homeService.processDataProductionStatistics(type, processTypes);
        List<ProcessDataProductionStatisticsDto> list = homeService.processDataProductionStatistics(type, processTypes);
        return AjaxResult.success(list);
    }
src/main/java/com/ruoyi/home/dto/ProcessDataProductionStatisticsDto.java
ÎļþÃû´Ó src/main/java/com/ruoyi/home/dto/processDataProductionStatisticsDto.java ÐÞ¸Ä
@@ -16,7 +16,7 @@
 */
@Data
public class processDataProductionStatisticsDto {
public class ProcessDataProductionStatisticsDto {
    /**
     * å·¥åºåç§°
src/main/java/com/ruoyi/home/service/HomeService.java
@@ -94,5 +94,5 @@
    QualityStatisticsDto qualityInspectionStatistics(Integer type);
    List<processDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processTypes);
    List<ProcessDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processTypes);
}
src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -12,7 +12,6 @@
import com.ruoyi.approve.pojo.ApproveProcess;
import com.ruoyi.basic.mapper.CustomerMapper;
import com.ruoyi.basic.mapper.ProductMapper;
import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.mapper.SupplierManageMapper;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.basic.pojo.Product;
@@ -29,9 +28,6 @@
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.home.dto.*;
import com.ruoyi.home.service.HomeService;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.production.dto.ProductOrderDto;
import com.ruoyi.production.dto.ProductWorkOrderDto;
import com.ruoyi.production.mapper.ProductOrderMapper;
@@ -40,7 +36,6 @@
import com.ruoyi.production.mapper.ProductionProductInputMapper;
import com.ruoyi.production.mapper.ProductionProductOutputMapper;
import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
import com.ruoyi.production.pojo.ProductProcess;
import com.ruoyi.production.pojo.ProductWorkOrder;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.mapper.SysDeptMapper;
@@ -2482,7 +2477,7 @@
    }
    @Override
    public List<processDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processTypes) {
    public List<ProcessDataProductionStatisticsDto> processDataProductionStatistics(Integer type, List<Long> processTypes) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Long userId = SecurityUtils.isAdmin(loginUser.getUserId()) ? null : loginUser.getUserId();
@@ -2511,7 +2506,7 @@
        LocalDateTime startDateTime = startDate.atStartOfDay();
        LocalDateTime endDateTime = endDate.atTime(LocalTime.MAX);
        List<processDataProductionStatisticsDto> result = productProcessMapper.calculateProductionStatistics(startDateTime, endDateTime, userId, processTypes);
        List<ProcessDataProductionStatisticsDto> result = productProcessMapper.calculateProductionStatistics(startDateTime, endDateTime, userId, processTypes);
        if (!ObjectUtils.isEmpty(result)) {
            result.forEach(dto -> {
                if (dto == null) {
src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
@@ -3,7 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.home.dto.processDataProductionStatisticsDto;
import com.ruoyi.home.dto.ProcessDataProductionStatisticsDto;
import com.ruoyi.production.dto.ProductProcessDto;
import com.ruoyi.production.pojo.ProductProcess;
import org.apache.ibatis.annotations.Mapper;
@@ -17,5 +17,5 @@
    
    IPage<ProductProcessDto> listPage(Page page, @Param("productProcessDto") ProductProcessDto productProcessDto);
    List<processDataProductionStatisticsDto> calculateProductionStatistics(LocalDateTime startDateTime, LocalDateTime endDateTime, Long userId, List<Long> processTypes);
    List<ProcessDataProductionStatisticsDto> calculateProductionStatistics(LocalDateTime startDateTime, LocalDateTime endDateTime, Long userId, List<Long> processTypes);
}
src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
@@ -31,7 +31,7 @@
    /**
     * ç±»åˆ«(0:原材料检验;1:过程检验;2:出厂检验)
     */
    @Excel(name = "类别",readConverterExp = "0=原材料检验,1=过程检验,2=出厂检验")
    @Excel(name = "类别", readConverterExp = "0=原材料检验,1=过程检验,2=出厂检验")
    @NotBlank(message = "类别不能为空!!")
    private Integer inspectType;
@@ -41,8 +41,6 @@
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检测日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkTime;
    /**
@@ -62,6 +60,11 @@
     */
    @Excel(name = "工序")
    private String process;
    /**
     * å·¥åºç±»åž‹
     */
    private Integer processType;
    /**
     * æ£€éªŒå‘˜
@@ -110,7 +113,6 @@
     */
    @Excel(name = "检测结果")
    private String checkResult;
    @ApiModelProperty(value = "创建时间")
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -10,6 +10,9 @@
import com.deepoove.poi.config.Configure;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
@@ -33,6 +36,7 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
@@ -59,6 +63,7 @@
    public int add(QualityInspectDto qualityInspectDto) {
        QualityInspect qualityInspect = new QualityInspect();
        BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
        validateProcessType(qualityInspect);
        qualityInspect.setInspectState(0);//默认未提交
        qualityInspectMapper.insert(qualityInspect);
        for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) {
@@ -167,6 +172,7 @@
        }
        QualityInspect qualityInspect = new QualityInspect();
        BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
        validateProcessType(qualityInspect);
        return qualityInspectMapper.updateById(qualityInspect);
    }
@@ -178,7 +184,19 @@
    @Override
    public void qualityInspectExport(HttpServletResponse response, QualityInspect qualityInspect) {
        List<QualityInspect> qualityInspects = qualityInspectMapper.qualityInspectExport(qualityInspect);
        ExcelUtil<QualityInspect> util = new ExcelUtil<QualityInspect>(QualityInspect.class);
        if (qualityInspects != null && !qualityInspects.isEmpty()) {
            for (QualityInspect inspect : qualityInspects) {
                if (inspect == null || inspect.getProcessType() == null) {
                    continue;
                }
                String processLabel = DictUtils.getDictLabel("product_process_type", String.valueOf(inspect.getProcessType()));
                if (StringUtils.isNotEmpty(processLabel)) {
                    inspect.setProcess(processLabel);
                }
            }
        }
        ExcelUtil<QualityInspect> util = new ExcelUtil<>(QualityInspect.class);
        switch (qualityInspect.getInspectType()) {
            case 0:
                util.exportExcel(response, qualityInspects, "原材料检验导出");
@@ -193,5 +211,29 @@
    }
    private void validateProcessType(QualityInspect qualityInspect) {
        if (qualityInspect == null || qualityInspect.getProcessType() == null) {
            return;
        }
        String dictType = "product_process_type";
        String input = String.valueOf(qualityInspect.getProcessType());
        String dictValue = DictUtils.getDictValue(dictType, input);
        if (StringUtils.isNotEmpty(dictValue)) {
            qualityInspect.setProcessType(Integer.valueOf(dictValue));
            return;
        }
        String dictValues = DictUtils.getDictValues(dictType);
        if (StringUtils.isNotEmpty(dictValues)) {
            List<String> valueList = Arrays.asList(dictValues.split(DictUtils.SEPARATOR));
            if (valueList.contains(input)) {
                return;
            }
        }
        throw new ServiceException("工序类型【" + input + "】不存在,请填写正确的类型:" + DictUtils.getDictLabels(dictType));
    }
}
src/main/resources/mapper/production/ProductProcessMapper.xml
@@ -33,7 +33,7 @@
        order by pp.id asc
    </select>
    <select id="calculateProductionStatistics" resultType="com.ruoyi.home.dto.processDataProductionStatisticsDto">
    <select id="calculateProductionStatistics" resultType="com.ruoyi.home.dto.ProcessDataProductionStatisticsDto">
        SELECT
        pp.type AS processType,
        SUM(pi.quantity) AS totalInput,