From 3e8afc86419ef72a4a7769730cf97a36c333df58 Mon Sep 17 00:00:00 2001 From: yuliang <398780299@qq.com> Date: Mon, 21 Jul 2025 10:52:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=95=E4=BC=9A=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/galaxis/rcs/common/entity/ApiTask.java | 26 ++ .../com/galaxis/rcs/common/query/QApiTask.java | 68 +++++ .../yvan/workbench/controller/ApiController.java | 319 +++++++++++++++++++++ .../java/com/yvan/workbench/controller/RR.java | 253 ++++++++++++++++ servo/src/main/resources/application.yml | 1 + .../src/test/java/com/yvan/workbench/BaseTest.java | 2 +- .../test/java/com/yvan/workbench/CodegenTest.java | 2 +- 7 files changed, 669 insertions(+), 2 deletions(-) create mode 100644 servo/src/main/java/com/galaxis/rcs/common/entity/ApiTask.java create mode 100644 servo/src/main/java/com/galaxis/rcs/common/query/QApiTask.java create mode 100644 servo/src/main/java/com/yvan/workbench/controller/ApiController.java create mode 100644 servo/src/main/java/com/yvan/workbench/controller/RR.java diff --git a/servo/src/main/java/com/galaxis/rcs/common/entity/ApiTask.java b/servo/src/main/java/com/galaxis/rcs/common/entity/ApiTask.java new file mode 100644 index 0000000..7d2a1ad --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/common/entity/ApiTask.java @@ -0,0 +1,26 @@ +package com.galaxis.rcs.common.entity; + +import lombok.Data; +import java.io.Serializable; +import java.util.Date; + +/** + * 接口任务(api_task) + */ +@Data +public class ApiTask implements Serializable { + /** 任务id */ + private Long taskId; + /** 环境id */ + private Long envId; + /** 任务类型 0 入库 1 出库 2礼品出库 3礼品回库 */ + private Integer taskType; + /** 任务状态 0创建 1执行中 2完成 3错误 4取消 */ + private Integer taskStatus; + /** 托盘号 */ + private String lpn; + /** 创建时间 */ + private Date createAt; + /** */ + private Date updateAt; +} diff --git a/servo/src/main/java/com/galaxis/rcs/common/query/QApiTask.java b/servo/src/main/java/com/galaxis/rcs/common/query/QApiTask.java new file mode 100644 index 0000000..c214c84 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/common/query/QApiTask.java @@ -0,0 +1,68 @@ +package com.galaxis.rcs.common.query; + +import static com.querydsl.core.types.PathMetadataFactory.*; +import com.querydsl.core.types.dsl.*; +import com.querydsl.core.types.*; +import com.querydsl.sql.*; +import java.sql.Types; +import com.galaxis.rcs.common.entity.ApiTask; +import java.util.Date; + +/** + * 接口任务(api_task) + */ +@SuppressWarnings("ALL") +public class QApiTask extends RelationalPathBase { + /** api_task表 */ + public static final QApiTask apiTask = new QApiTask("api_task"); + + /** 任务id */ + public final NumberPath taskId = createNumber("taskId", Long.class); + /** 环境id */ + public final NumberPath envId = createNumber("envId", Long.class); + /** 任务类型 0 入库 1 出库 2礼品出库 3礼品回库 */ + public final NumberPath taskType = createNumber("taskType", Integer.class); + /** 任务状态 0创建 1执行中 2完成 3错误 4取消 */ + public final NumberPath taskStatus = createNumber("taskStatus", Integer.class); + /** 托盘号 */ + public final StringPath lpn = createString("lpn"); + /** 创建时间 */ + public final DateTimePath createAt = createDateTime("createAt", Date.class); + /** */ + public final DateTimePath updateAt = createDateTime("updateAt", Date.class); + + public QApiTask(String variable) { + super(ApiTask.class, forVariable(variable), "rcs2_tw_zhanghui", "api_task"); + addMetadata(); + } + + public QApiTask(String variable, String schema, String table) { + super(ApiTask.class, forVariable(variable), schema, table); + addMetadata(); + } + + public QApiTask(String variable, String schema) { + super(ApiTask.class, forVariable(variable), schema, "api_task"); + addMetadata(); + } + + public QApiTask(Path path) { + super(path.getType(), path.getMetadata(), "rcs2_tw_zhanghui", "api_task"); + addMetadata(); + } + + public QApiTask(PathMetadata metadata) { + super(ApiTask.class, metadata, "rcs2_tw_zhanghui", "api_task"); + addMetadata(); + } + + private void addMetadata() { + addMetadata(taskId, ColumnMetadata.named("task_id").withIndex(1).ofType(Types.BIGINT).withSize(19)); + addMetadata(envId, ColumnMetadata.named("env_id").withIndex(2).ofType(Types.BIGINT).withSize(19)); + addMetadata(taskType, ColumnMetadata.named("task_type").withIndex(3).ofType(Types.INTEGER).withSize(10)); + addMetadata(taskStatus, ColumnMetadata.named("task_status").withIndex(4).ofType(Types.INTEGER).withSize(10)); + addMetadata(lpn, ColumnMetadata.named("lpn").withIndex(5).ofType(Types.VARCHAR).withSize(64)); + addMetadata(createAt, ColumnMetadata.named("create_at").withIndex(6).ofType(Types.TIMESTAMP).withSize(3)); + addMetadata(updateAt, ColumnMetadata.named("update_at").withIndex(7).ofType(Types.TIMESTAMP).withSize(3)); + } +} diff --git a/servo/src/main/java/com/yvan/workbench/controller/ApiController.java b/servo/src/main/java/com/yvan/workbench/controller/ApiController.java new file mode 100644 index 0000000..e0af801 --- /dev/null +++ b/servo/src/main/java/com/yvan/workbench/controller/ApiController.java @@ -0,0 +1,319 @@ +package com.yvan.workbench.controller; + +import com.galaxis.rcs.inv.InvManager; +import com.querydsl.core.util.StringUtils; +import org.clever.core.Conv; + +import org.clever.data.jdbc.DaoFactory; +import org.clever.data.jdbc.QueryDSL; +import org.clever.web.mvc.annotation.RequestBody; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicBoolean; + +import static com.galaxis.rcs.common.query.QLccBasContainer.lccBasContainer; +import static com.galaxis.rcs.common.query.QLccBasLocation.lccBasLocation; +import static com.galaxis.rcs.common.query.QLccInvLpn.lccInvLpn; +import static com.galaxis.rcs.common.query.QApiTask.apiTask; + +/** + * 接口 + */ +public class ApiController { + + private final static String catalogCode = "f1"; + + private final static String projectUUID = "tw_zh"; + + private final static long envId = 13; + private final static String inPos = "504_506"; + private final static String outPos = "504_503"; + + // 礼品托盘 + private final static String giftLpn = "GLPN"; + // 礼品托盘位 + private final static String gifPos = "500_500"; + + static final QueryDSL queryDSL = DaoFactory.getQueryDSL(); + + private static final AtomicBoolean cl2Running = new AtomicBoolean(false); + private static final AtomicBoolean clxRunning = new AtomicBoolean(false); + private final static Thread cl2DemoTask = new Thread(() -> { + + String gstore = "504_501"; + String agvId = "1"; + String[] demoLocList = {"rack1/0/1/0", "rack1/1/1/0", "rack1/2/1/0", "rack1/3/1/0"}; + + while (true) { + if (!cl2Running.get()) { + continue; + } + // 查询车上是否有托盘 + long aInvCount = queryDSL.select(lccInvLpn).from(lccInvLpn) + .where(lccInvLpn.locCode.eq(agvId) + .and(lccInvLpn.qty.gt(0)) + .and(lccInvLpn.envId.eq(envId))) + .fetchCount(); + // 查询地堆上是否有托盘 + long gInvCount = queryDSL.select(lccInvLpn).from(lccInvLpn) + .where(lccInvLpn.locCode.eq(gstore) + .and(lccInvLpn.qty.gt(0)) + .and(lccInvLpn.envId.eq(envId))) + .fetchCount(); + List emptyLocList = queryDSL.select(lccBasLocation.locCode).from(lccBasLocation) + .where(lccBasLocation.locCode.in(demoLocList).and(lccBasLocation.envId.eq(envId))) + .where(lccBasLocation.locCode.notIn( + queryDSL.select(lccInvLpn.locCode).from(lccInvLpn) + .where(lccInvLpn.qty.gt(0).and(lccInvLpn.envId.eq(envId)) + ))).fetch(); + +// if (gInvCount <= 0) { +// emptyLocList.add(gstore); +// } + + Map params = new HashMap<>(); + params.put("projectUUID", "tw_zh"); + params.put("envId", envId); + params.put("agvId", agvId); + try { + if (aInvCount >= 1) { + + // 随机一个可用货位 + double a = Math.random() * emptyLocList.size(); + String locCode = emptyLocList.get(Conv.asInteger(a)); + params.put("targetStoreLoc", locCode); + RcsController.agvUnload(params); + RcsController.waitTaskFinish(params); + Thread.sleep(1000); + + } else { + // 如果入库口有托盘 + long gInboundInvCount = queryDSL.select(lccInvLpn).from(lccInvLpn) + .where(lccInvLpn.locCode.eq(inPos) + .and(lccInvLpn.qty.gt(0)) + .and(lccInvLpn.envId.eq(envId))) + .fetchCount(); + + if (gInboundInvCount >= 1) { + double a = Math.random() * emptyLocList.size(); + String locCode = emptyLocList.get(Conv.asInteger(a)); + params.put("fromStoreLoc", inPos); + params.put("targetStoreLoc", locCode); + + RcsController.agvCarry(params); + RcsController.waitTaskFinish(params); + Thread.sleep(1000); + + } else if (gInvCount >= 1){ + + double a = Math.random() * emptyLocList.size(); + String locCode = emptyLocList.get(Conv.asInteger(a)); + params.put("fromStoreLoc", gstore); + params.put("targetStoreLoc", locCode); + + RcsController.agvCarry(params); + RcsController.waitTaskFinish(params); + Thread.sleep(1000); + } else { + + } + + + } + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + + } + }); + private final static Thread clxDemoTask = new Thread(() -> { + + String gstore = "500_500"; + String agvId = "2"; + String[] demoLocList = {"rack1/0/2/0", "rack1/1/2/0", "rack1/2/2/0", "rack1/3/2/0"}; + + while (true) { + if (!clxRunning.get()) { + continue; + } + + } + }); + + public static RR in_bound(@RequestBody Map params) { + //"pos": "1", + //"lpn": "托盘号,可以为空", + //"car_no": "cl2" + String pos = Conv.asString(params.get("pos")); + String lpn = Conv.asString(params.get("lpn")); + String carNo = Conv.asString(params.get("car_no")); + + lpn = queryDSL.select(lccBasContainer.lpn).from(lccBasContainer) + .where(lccBasContainer.envId.eq(envId).and(lccBasContainer.containerType.eq("pallet"))) + .where(lccBasContainer.lpn.notIn( + queryDSL.select(lccInvLpn.lpn).from(lccInvLpn) + .where(lccInvLpn.envId.eq(envId).and(lccInvLpn.qty.gt(0))) + )).fetchFirst(); + + if (StringUtils.isNullOrEmpty(lpn)) { + return RR.fail("当前库存已满,无法入库"); + } + try { + InvManager.invSave(envId, 0L, lpn, inPos, 1); + } catch (Exception e) { + return RR.fail("当前入库位有货,无法入库"); + } + + queryDSL.insert(apiTask) + .set(apiTask.envId, envId) + .set(apiTask.taskType, 0) + .set(apiTask.taskStatus, 0) + .set(apiTask.lpn, lpn).execute(); + + + return RR.success(); + } + + // 出库 + public static RR out_bound(@RequestBody Map params) { + //"pos": "1", + //"lpn": "托盘号,可以为空", + //"car_no": "cl2" + String pos = Conv.asString(params.get("pos")); + String lpn = Conv.asString(params.get("lpn")); + String carNo = Conv.asString(params.get("car_no")); + + long count = queryDSL.select(lccInvLpn).from(lccInvLpn) + .innerJoin(lccBasContainer).on(lccInvLpn.lpn.eq(lccBasContainer.lpn)) + .where(lccInvLpn.envId.eq(envId).and(lccBasContainer.containerType.eq("pallet"))) + .fetchCount(); + + if (count < 2) { + return RR.fail("当前库存不足,无法出库"); + } + + count = queryDSL.select(lccInvLpn).from(lccInvLpn) + .where(lccInvLpn.locCode.eq(outPos).and(lccInvLpn.envId.eq(envId)).and(lccInvLpn.qty.gt(0))) + .fetchCount(); + + if (count >= 1) { + return RR.fail("当前出库位有货,无法出库"); + } + + queryDSL.insert(apiTask) + .set(apiTask.envId, envId) + .set(apiTask.taskType, 1) + .set(apiTask.taskStatus, 0) + .set(apiTask.lpn, lpn).execute(); + + return RR.success(); + } + + // 礼品位请求 + public static RR gift_slot(@RequestBody Map params) { + String carNo = Conv.asString(params.get("car_no")); + // 查询礼品所在货位 + long count = queryDSL.select(lccInvLpn).from(lccInvLpn) + .where(lccInvLpn.envId.eq(envId).and(lccInvLpn.lpn.eq(giftLpn)).and(lccInvLpn.qty.gt(0)).and(lccInvLpn.locCode.eq(gifPos))) + .fetchCount(); + if (count >= 1) { + return RR.fail("当前礼品托盘在礼品位"); + } + // 取消礼品位请求的任务 + queryDSL.update(apiTask).set(apiTask.taskStatus, 4) + .where(apiTask.taskType.in(2, 3).and(apiTask.taskStatus.eq(0))) + .execute(); + count = queryDSL.select(apiTask).from(apiTask) + .where(apiTask.taskType.in(2, 3).and(apiTask.taskStatus.eq(1))) + .fetchCount(); + if (count >= 1) { + return RR.fail("当前礼品位有任务,请等待"); + } + queryDSL.insert(apiTask) + .set(apiTask.envId, envId) + .set(apiTask.taskType, 2) + .set(apiTask.taskStatus, 0) + .set(apiTask.lpn, giftLpn).execute(); + return RR.success(); + } + + // 礼品回库 + public static RR gift_back(@RequestBody Map params) { + String carNo = Conv.asString(params.get("car_no")); + // 查询礼品所在货位 + long count = queryDSL.select(lccInvLpn).from(lccInvLpn) + .where(lccInvLpn.envId.eq(envId).and(lccInvLpn.lpn.eq(giftLpn)).and(lccInvLpn.qty.gt(0)).and(lccInvLpn.locCode.eq(gifPos))) + .fetchCount(); + if (count <= 0) { + return RR.fail("当前礼品托盘不在礼品位"); + } + // 取消礼品位请求的任务 + queryDSL.update(apiTask).set(apiTask.taskStatus, 4) + .where(apiTask.taskType.in(2, 3).and(apiTask.taskStatus.eq(0))) + .execute(); + count = queryDSL.select(apiTask).from(apiTask) + .where(apiTask.taskType.in(2, 3).and(apiTask.taskStatus.eq(1))) + .fetchCount(); + if (count >= 1) { + return RR.fail("当前礼品位有任务,请等待"); + } + queryDSL.insert(apiTask) + .set(apiTask.envId, envId) + .set(apiTask.taskType, 3) + .set(apiTask.taskStatus, 0) + .set(apiTask.lpn, giftLpn).execute(); + return RR.success(); + } + + // 启动演示 + public static RR demo_start(@RequestBody Map params) { + String carNo = Conv.asString(params.get("car_no")); + if (StringUtils.isNullOrEmpty(carNo)) { + cl2Running.set(true); + clxRunning.set(true); + } else if (carNo.equals("cl2")) { + cl2Running.set(true); + } else if (carNo.equals("clx")) { + clxRunning.set(true); + } else { + return RR.fail("参数错误, car_no 必须为空字符串 或者 cl2 或者 clx"); + } + + if (!cl2DemoTask.isAlive()) { + cl2DemoTask.start(); + } + if (!clxDemoTask.isAlive()) { + clxDemoTask.start(); + } + + return RR.success(); + } + + // 停止演示 + public static RR demo_stop(@RequestBody Map params) { + String carNo = Conv.asString(params.get("car_no")); + if (StringUtils.isNullOrEmpty(carNo)) { + cl2Running.set(false); + clxRunning.set(false); + } else if (carNo.equals("cl2")) { + cl2Running.set(false); + } else if (carNo.equals("clx")) { + clxRunning.set(false); + } else { + return RR.fail("参数错误, car_no 必须为空字符串 或者 cl2 或者 clx"); + } + + return RR.success(); + } + + // 充电 + public static RR move_to_charger(@RequestBody Map params) { + + return RR.success(); + } + + +} diff --git a/servo/src/main/java/com/yvan/workbench/controller/RR.java b/servo/src/main/java/com/yvan/workbench/controller/RR.java new file mode 100644 index 0000000..099920b --- /dev/null +++ b/servo/src/main/java/com/yvan/workbench/controller/RR.java @@ -0,0 +1,253 @@ +package com.yvan.workbench.controller; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.clever.core.model.response.BaseResponse; +import org.clever.core.validator.FieldError; + +import java.io.PrintWriter; +import java.io.Serial; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; + +/** + * ajax异步请求的响应消息
+ *

+ * 作者:LiZW
+ * 创建时间:2016-5-8 21:32
+ */ +@JsonInclude(Include.NON_NULL) +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@Data +public class RR extends BaseResponse { + @Serial + private static final long serialVersionUID = 1L; + + public static RR success(T data, String msg) { + return new RR<>(data, msg); + } + + public static RR success(T data) { + return new RR<>(data, "操作成功"); + } + + public static RR success() { + return new RR<>(true, "操作成功"); + } + + public static RR fail(String msg) { + return new RR<>(false, msg); + } + + public static RR fail(Throwable throwable, String exceptionMessage) { + return new RR<>(throwable, exceptionMessage); + } + + public static RR fail() { + return new RR<>(false, "操作失败"); + } + + public static RR create(boolean success, String msg) { + return new RR<>(success, msg); + } + + /** + * 下次请求是否需要验证码 + */ + private boolean isNeedValidateCode = false; + /** + * 操作是否成功 + */ + private boolean success = false; + /** + * 请求响应返回的数据 + */ + private T data; + /** + * 请求成功后跳转地址 + */ + private String successUrl; + /** + * 请求失败后跳转地址 + */ + private String failUrl; + /** + * 操作成功消息 + */ + private String msg; + /** + * 服务器是否发生异常 + */ + private boolean hasException = false; + /** + * 服务端异常消息 + */ + private String exceptionMessage; + /** + * 服务端异常的堆栈信息 + */ + private String exceptionStack; + /** + * 请求数据验证的错误消息 + */ + private List fieldErrors; + + /** + * 默认构造,默认请求操作失败 success=false + */ + public RR() { + } + + /** + * 请求服务端发生异常(hasException = true)时,使用的构造方法
+ * + * @param throwable 请求的异常对象 + * @param exceptionMessage 请求的异常时的消息 + */ + public RR(Throwable throwable, String exceptionMessage) { + this(null, false, null, true, throwable, exceptionMessage); + } + + /** + * 服务端请求完成并且操作成功(success = true)
+ * + * @param data 请求响应数据 + * @param msg success=true时,请求成功时的消息 + */ + public RR(T data, String msg) { + this(data, true, msg, false, null, null); + } + + /** + * 服务端请求没有发生异常时,使用的构造方法
+ * + * @param success 请求结果是否成功 + * @param msg success=true时,请求成功时的消息 + * @param msg success=false时,请求失败时的消息 + */ + public RR(boolean success, String msg) { + this(null, success, msg, false, null, null); + } + + /** + * 服务端请求完成,没有发生异常时,使用的构造方法
+ * + * @param data 请求响应数据 + * @param success 请求结果是否成功 + * @param msg success=true时,请求成功时的消息 + * @param msg success=false时,请求失败时的消息 + */ + public RR(T data, boolean success, String msg) { + this(data, success, msg, false, null, null); + } + + /** + * @param data 请求响应数据 + * @param success 请求结果是否成功 + * @param msg success=true时,请求成功时的消息 + * @param msg success=false时,请求失败时的消息 + * @param hasException 是否发生服务器异常 + * @param throwable 请求的异常对象 + * @param exceptionMessage 请求的异常时的消息 + */ + public RR(T data, boolean success, String msg, boolean hasException, Throwable throwable, String exceptionMessage) { + this.data = data; + this.success = success; + this.msg = msg; + this.msg = msg; + this.hasException = hasException; + this.exceptionStack = getStackTraceAsString(throwable); + this.exceptionMessage = exceptionMessage; + } + + /** + * 增加验证错误消息
+ */ + public RR addFieldError(FieldError fieldError) { + if (this.fieldErrors == null) { + this.fieldErrors = new ArrayList<>(); + } + this.fieldErrors.add(fieldError); + return this; + } + + /** + * 设置异常信息
+ * 1.请求失败 success=false
+ * 2.设置 hasException = true + * 3.给返回的异常堆栈属性赋值(exceptionStack)
+ * + * @param e 异常对象 + */ + public void setException(Throwable e) { + if (e != null) { + this.success = false; + this.hasException = true; + } + this.exceptionStack = getStackTraceAsString(e); + } + + /** + * 将ErrorStack转化为String(获取异常的堆栈信息)
+ * + * @param e 异常对象 + * @return 异常的堆栈信息 + */ + private static String getStackTraceAsString(Throwable e) { + if (e == null) { + return ""; + } + StringWriter stringWriter = new StringWriter(); + e.printStackTrace(new PrintWriter(stringWriter)); + return stringWriter.toString(); + } + + /*-------------------------------------------------------------- + * getter、setter + * -------------------------------------------------------------*/ + + /** + * 设置请求是否成功
+ * + * 设置true,置空msg
+ * 设置false,置空msg
+ *
+ */ + public void setSuccess(boolean success) { + this.success = success; + if (success) { + this.msg = null; + } else { + this.msg = null; + } + } + + /** + * 设置请求成功返回的消息,置空msg + */ + public void setSuccessMessage(String msg) { + if (msg != null) { + this.msg = msg; + this.msg = null; + } else { + this.msg = null; + } + } + + /** + * 设置请求失败返回的消息,置空msg + */ + public void setFailMessage(String msg) { + if (msg != null) { + this.msg = msg; + this.msg = null; + } else { + this.msg = null; + } + } +} diff --git a/servo/src/main/resources/application.yml b/servo/src/main/resources/application.yml index 2fbf295..6619541 100644 --- a/servo/src/main/resources/application.yml +++ b/servo/src/main/resources/application.yml @@ -161,6 +161,7 @@ web: - '/**/*.woff2' - '/**/.git' - '/ok' + - '/api/workbench' ignore-auth-paths: ['/ok'] ignore-auth-failed-paths: - '/api/**' diff --git a/servo/src/test/java/com/yvan/workbench/BaseTest.java b/servo/src/test/java/com/yvan/workbench/BaseTest.java index 7583147..71dd58f 100644 --- a/servo/src/test/java/com/yvan/workbench/BaseTest.java +++ b/servo/src/test/java/com/yvan/workbench/BaseTest.java @@ -11,7 +11,7 @@ public class BaseTest { public static HikariConfig mysqlConfig() { HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver"); - hikariConfig.setJdbcUrl("jdbc:mysql://180.100.199.56:8306/rcs2_tw_zhanghui"); + hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/rcs2_tw_zhanghui"); hikariConfig.setUsername("rcs2_tw_zhanghui"); hikariConfig.setPassword("Rcs2_tw_zhanghui"); hikariConfig.setAutoCommit(false); diff --git a/servo/src/test/java/com/yvan/workbench/CodegenTest.java b/servo/src/test/java/com/yvan/workbench/CodegenTest.java index 25dace3..3d33b52 100644 --- a/servo/src/test/java/com/yvan/workbench/CodegenTest.java +++ b/servo/src/test/java/com/yvan/workbench/CodegenTest.java @@ -29,7 +29,7 @@ public class CodegenTest { // .addTable("rcs_task_biz") // .addTable("rcs_task_device") // .addTable("rcs_task_plan"); - .addTable("lcc_bas_location"); + .addTable("api_task"); CodegenUtils.genCode(jdbc, config); log.info("-->"); jdbc.close();