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 product-server-datasource/src/main/java/com/product/datasource/dao/impl/OracleDaoImpl.java
@@ -7,7 +7,6 @@ import com.product.core.config.Global; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.datasource.config.DataBaseType; import com.product.datasource.config.ErrorCode; @@ -19,8 +18,6 @@ import com.product.datasource.utils.BatchUtil; import org.apache.commons.lang3.StringUtils; import java.lang.ref.PhantomReference; import java.lang.ref.WeakReference; import java.sql.*; import java.util.List; @@ -65,7 +62,7 @@ } private void info(String message) { if (this.outLog) { if (this.outLog || "true".equals(Global.getSystemConfig("log.sql.print", "false")) ) { SpringMVCContextHolder.getSystemLogger().info(message); } } @@ -89,7 +86,7 @@ } return this.connection; } catch (Exception e) { e.printStackTrace(); SpringMVCContextHolder.getSystemLogger().error(e); throw new BaseException(ErrorCode.GET_CONNECTION_FAIL, e); } } @@ -138,6 +135,7 @@ ResultSet resultSet = pst.executeQuery(); return loaddingDataList(resultSet); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); SpringMVCContextHolder.getSystemLogger().error("EXECUTE_ERROR_SQL:\n" + sql); throw new BaseException(ErrorCode.GET_LIST_FAIL, e); } @@ -427,6 +425,7 @@ pst.execute(); } catch (Exception e) { e.printStackTrace(); SpringMVCContextHolder.getSystemLogger().error(e); throw new BaseException(ErrorCode.ADD_RECORD_FAIL, e); } } @@ -486,6 +485,7 @@ info("执行批量提交数据完成,共提交 " + data.getRows() + " 条,耗时:" + timer.intervalSecond() + " 秒 !"); pst.clearBatch(); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); throw e; } finally { connection.setAutoCommit(true); @@ -532,11 +532,13 @@ } return pst.executeUpdate(); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); throw e; } finally { // this.closeConnection(); } } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); throw new BaseException(ErrorCode.UPDATE_BATCH_ERROR, e); } } @@ -597,7 +599,7 @@ int[] ints = pst.executeBatch(); info("执行批量提交数据完成,共提交 " + data.getRows() + " 条,耗时:" + timer.intervalSecond() + " 秒 !"); pst.clearBatch(); if (isCommit) { if (isCommit && !connection.getAutoCommit()) { connection.commit(); } int successCount = 0; @@ -610,14 +612,16 @@ batchResultEntity.setConnection(connection); return batchResultEntity; } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); throw e; } finally { if (isCommit) { if (isCommit && !connection.isClosed() && !connection.getAutoCommit()) { connection.setAutoCommit(true); } // this.closeConnection(); // this.closeConnection(); } } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); throw new BaseException(ErrorCode.UPDATE_BATCH_ERROR, e); } } @@ -688,6 +692,7 @@ } return pst.executeUpdate(); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); throw new OracleDaoImpl.BaseException(ErrorCode.EXECUTE_SQL_FAIL, e); } }