生产实时查询,过站信息修改   制令单关联的工单数据 未找到日志输出
已修改3个文件
45 ■■■■■ 文件已修改
product-server-data-center/src/main/java/com/product/data/center/entity/ProductDetailEntity.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-data-center/src/main/java/com/product/data/center/service/DataExtractService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-data-center/src/main/java/com/product/data/center/service/ProductionRealTimeInfoService.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-data-center/src/main/java/com/product/data/center/entity/ProductDetailEntity.java
@@ -4,6 +4,7 @@
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
//过站信息
@Getter
@Setter
@ToString
@@ -17,10 +18,10 @@
    private String serialNumber;
    @ExcelProperty("过站时间")
    private Integer inStationTime;
    private String inStationTime;
    @ExcelProperty("状态")
    private Integer errorFlagText;
    private String errorFlagText;
    @ExcelProperty("数量")
    private Integer itemCount;
product-server-data-center/src/main/java/com/product/data/center/service/DataExtractService.java
@@ -599,6 +599,8 @@
        if (DataTableEntity.isEmpty(dt) || !"T_PM_MO_BASE".equalsIgnoreCase(targetTable)) {
            return;
        }
        StringBuilder b=new StringBuilder();
        b.append("select * from T_PM_PROJECT_BASE where project_id in( ");
        Map<String, FieldSetEntity> map = new HashMap<>();
        List<Object> moNumberList = new ArrayList<>();
        for (int i = 0; i < dt.getRows(); i++) {
@@ -607,8 +609,13 @@
                continue;
            }
            moNumberList.add(moNumber);
            if(i>0)b.append(",");
            b.append(moNumber);
            map.put(moNumber, dt.getFieldSetEntity(i));
        }
        b.append(" ) ");
        //查询制令单关联的工单数据
        DataTableEntity projectBaseDt = targetDao.getList("T_PM_PROJECT_BASE", new String[]{"PROJECT_ID,PROJECT_BASE_ID"},
                BaseUtil.buildQuestionMarkFilter("project_id", moNumberList.size(), true), moNumberList.toArray(), null, 1, dt.getRows());
@@ -625,6 +632,11 @@
            }
        }
        if (!map.isEmpty()) {
            b.append("\r\n未找到工单:");
            map.forEach((key, value) -> {
                b.append(key).append(",");
            });
            SpringMVCContextHolder.getSystemLogger().error(b.toString());
            throw new BaseException(ErrorCode.MO_NUMBER_MASTER_PROJECT_BASE_EMPTY);
        }
    }
product-server-data-center/src/main/java/com/product/data/center/service/ProductionRealTimeInfoService.java
@@ -54,6 +54,7 @@
        String fileName = URLEncoder.encode("制令单生产信息" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".xlsx", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName);
        List<ManufacturingOrderEntity> manufacturingOrderEntityList = new ArrayList<>();
         int page=1;
        for (int i = 0; i < manufacturingCommandSheet.getRows(); i++) {
            FieldSetEntity fieldSetEntity = manufacturingCommandSheet.getFieldSetEntity(i);
            Map<Object, Object> values = fieldSetEntity.getValues();
@@ -75,7 +76,6 @@
//        writeSheet = EasyExcel.writerSheet(3, "制令单信息").build();
//        excelWriter.write(manufacturingOrderEntityList, writeSheet);
            String process = fse.getString("process");
            int page=0;
            String[] moNumbers = manufacturingCommandSheet.getData().stream().map(item -> item.getString("mo_number")).toArray(String[]::new);
            for (int i = 1; i <= moNumbers.length; i++) {
                String moNumber = moNumbers[i - 1];
@@ -87,8 +87,9 @@
                if (DataTableEntity.isEmpty(processSheet)) {
                    continue;
                }
                fileName = moNumber + "的生产明细";
                writeSheet = EasyExcel.writerSheet(++page, fileName).head(ProductionDetailEntity.class).build();
                page++;
                fileName = moNumber + "生产明细";
                writeSheet = EasyExcel.writerSheet(page, fileName).head(ProductionDetailEntity.class).build();
                List<ProductionDetailEntity> productionDetailEntities = new ArrayList<>();
                for (int k = 0; k < processSheet.getRows(); k++) {
                    JSONObject jsonObject = new JSONObject((Map) processSheet.getFieldSetEntity(k).getValues());
@@ -96,22 +97,24 @@
                    productionDetailEntities.add(productionDetail);
                }
                excelWriter.write(productionDetailEntities, writeSheet);
                //2025-09-03改 增加过滤信息-------------------------------
                //查出订单的所有过站明细
                DataTableEntity detail = getProcessSheet(ff);
                if (DataTableEntity.isEmpty(processSheet)) {
                DataTableEntity detailSheet = getProductDetailSheet(ff);
                if (DataTableEntity.isEmpty(detailSheet)) {
                    continue;
                }
                fileName = moNumber + "的过站明细";
                writeSheet = EasyExcel.writerSheet(++page, fileName).head(ProductDetailEntity.class).build();
                DataTableEntity detailSheet = getProductDetailSheet(ff);
                page++;
                fileName = moNumber + "过站明细";
                writeSheet = EasyExcel.writerSheet(page, fileName).head(ProductDetailEntity.class).build();
                List<ProductDetailEntity> productDetailEntity = new ArrayList<>();
                for (int k = 0; k < processSheet.getRows(); k++) {
                for (int k = 0; k < detailSheet.getRows(); k++) {
                    JSONObject jsonObject = new JSONObject((Map) detailSheet.getFieldSetEntity(k).getValues());
                    ProductDetailEntity productDetail = jsonObject.toJavaObject(ProductDetailEntity.class);
                    productDetailEntity.add(productDetail);
                }
                excelWriter.write(productDetailEntity, writeSheet);
                //2025-09-03改-------------------------------------------
            }
        } catch (Exception e) {
            throw e;
@@ -287,9 +290,8 @@
        return dataTableEntity;
    }
    /**
     * 2025-09-02改
     * 生产实时数据,因da_t_wip_tracking表display_group='N/A',查不出数据
     * 改为查 da_t_wip_detail表 更改了display_group->group_name字段,去掉routeendflage 和routeendflage条件
     * 2025-09-03改
     * 生产实时数据,查询导出增加过站信息
     * @param fse
     * @return
     * @throws BaseException