帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
143
帖子
2
勋章
4万+
Y币

案例-左侧树增删改查

[复制链接]
发表于 2023-10-27 15:05:44
本帖最后由 yonyouhmm 于 2023-11-27 10:16 编辑

一、案例说明
    我们发现使用主子结构的实体,构建树表,如果把树表做成自建参照会有问题,所以如果实际项目中如果要做左树右表,请创建两个业务对象,两个独立的实体
  有很多场景,客户需要在左树右卡或者左树右表的单据中,能在当前页对左侧树进行独立的增删改查,针对此需求,本章以左树右表为案例进行设计开发,构建主子实体,主实体引用树形结构,作为左侧树,子实体为右侧表。
二、设计步骤
1、创建业务对象和实体


主实体:这里“树形结构”为必须勾选的,至于“档案状态”是在开发过程中遇到一个报错必须勾选了才能使用后端函数正常删除主表数据,应是产品bug

子实体:

2、构建左树右表


设计左侧树显示内容


调整右表关联实体,这是用主子实体构建左树右表特殊的地方,实体清单多了一个右表的子实体,我们关联实体需要切换一下

左侧搜索树下增加toolbar,toolbal下增加按钮


3、构建模态框
依据主实体构建单卡页

调整为模态框:选中页面模板,打开编辑器,增加"templateType": "modal",右侧弹框宽度调整为600

删除表头按钮栏,删除底部原来的取消和保存按钮,这里删除按钮的目的是排除系统框架对预制按钮的控制。自己增加两个按钮,一个取消按钮绑定前端脚本,脚本放在后面了。一个保存按钮绑定“保存”动作。


3、构建参照
这里依据主实体构建的树参照,是模态框中的上级分类字段,在新增平级和新增下级的时候,是依靠“上级分类”来维护树的关系。
参照构建完成后,去模态框页面中选中“上级分类”字段,参照配置一下此步创建的参照。


三、开发步骤
上面的页面设计完成后,因为左侧树没有数据,按钮不显示,依据主实体构建一个树形表,维护一条数据,这个时候左树右表应当显示如下:


左树右表页面5个按钮的脚本,自行替换按钮编码
  1. //新增平级  flag:0
  2. viewModel.get('button8jd').on('click', (args) => {
  3.   debugger;
  4.   let selectNodes = viewModel.getTreeModel().getSelectedNodes();
  5.   let treeParam = selectNodes[0];
  6.   let data = {
  7.     billtype: 'Voucher', // 单据类型
  8.     billno: 'treeTableModal', // 单据号
  9.     params: {
  10.       mode: 'add',
  11.       treeParam: treeParam,
  12.       flag: 0,
  13.     },
  14.   };
  15.   //打开一个单据,并在当前页面显示
  16.   cb.loader.runCommandLine('bill', data, viewModel);
  17. });

  18. //新增下级 flag:1
  19. viewModel.get('button19mg').on('click', (args) => {
  20.   debugger;
  21.   let selectNodes = viewModel.getTreeModel().getSelectedNodes();
  22.   let treeParam = selectNodes[0];
  23.   let data = {
  24.     billtype: 'Voucher', // 单据类型
  25.     billno: 'treeTableModal', // 单据号
  26.     params: {
  27.       mode: 'add',
  28.       treeParam: treeParam,
  29.       flag: 1,
  30.     },
  31.   };
  32.   //打开一个单据,并在当前页面显示
  33.   cb.loader.runCommandLine('bill', data, viewModel);
  34. });

  35. //编辑
  36. viewModel.get('button31kb').on('click', (args) => {
  37.   let id = args.key;
  38.   let data = {
  39.     billtype: 'Voucher', // 单据类型
  40.     billno: 'treeTableModal', // 单据号
  41.     params: {
  42.       mode: 'edit',
  43.       id: id,
  44.     },
  45.   };
  46.   //打开一个单据,并在当前页面显示
  47.   cb.loader.runCommandLine('bill', data, viewModel);
  48. });

  49. //删除
  50. viewModel.get('button44wd').on('click', (args) => {
  51.   let id = args.key;
  52.   var returnPromise = new cb.promise();
  53.   cb.utils.confirm(
  54.     '是否确认删除?',
  55.     function (args) {
  56.       //调用api函数删除 根据业务需求 是否删除前判断下是否有下级  有下级就不让删除
  57.       let res = cb.rest.invokeFunction("AT18EE15E23EB8000A.apiFunc.getChildTree", {id:id}, function(err, res) {},viewModel,{async:false})
  58.       let count = res.result.res[0].count;
  59.       if(count>0) {
  60.         cb.utils.alert("请先删除下级数据!");
  61.         return returnPromise.resolve();
  62.       } else {
  63.         let delRes = cb.rest.invokeFunction("AT18EE15E23EB8000A.apiFunc.delTreeNode", {id:id}, function(err, res) {},viewModel,{async:false})
  64.         debugger;
  65.        **.**.do('queryTree', viewModel);
  66.         return returnPromise.resolve();
  67.       }
  68.       
  69.     },
  70.     function (args) {
  71.       return Promise.reject();
  72.     }
  73.   );
  74.   return returnPromise;
  75. });

  76. //查看
  77. viewModel.get('button60of').on('click', (args) => {
  78.   let id = args.key;
  79.   let data = {
  80.     billtype: 'Voucher', // 单据类型
  81.     billno: 'treeTableModal', // 单据号
  82.     params: {
  83.       mode: 'browse',
  84.       id: id,
  85.       flag: 2
  86.     },
  87.   };
  88.   //打开一个单据,并在当前页面显示
  89.   cb.loader.runCommandLine('bill', data, viewModel);
  90. });
复制代码
模态框中的脚本,自行替换按钮编码
  1. viewModel.on('afterSave', (args) => {
  2.   //重新加载searchTree
  3.   viewModel.getCache('parentViewModel').biz.do('queryTree', viewModel.getCache('parentViewModel'));
  4. });

  5. viewModel.get('button2qb').on('click',args=>{
  6.   //取消按钮 关闭模态框
  7. **.**munication({type:'return'});
  8. })

  9. viewModel.on('afterLoadData', (args) => {
  10.   debugger;
  11.   let treeParam = viewModel.getParams().treeParam;
  12.   let flag = viewModel.getParams().flag; //区分是点哪个按钮进来的
  13.   if (flag == 0) {
  14.     //新增平级  有parent属性说明有上级节点  就要给上级分类赋值
  15.     if (treeParam.parent) {
  16.       viewModel.get('parent').setValue(treeParam.parent);
  17.       viewModel.get('parent_name').setValue(treeParam.parent_name);
  18.     }
  19.   } else if (flag == 1) {
  20.     //新增下级 选择的就是上级节点
  21.     viewModel.get('parent').setValue(treeParam.id);
  22.     viewModel.get('parent_name').setValue(treeParam.name);
  23.   } else if (flag == 2) {
  24.     //查看   隐藏保存按钮
  25.     viewModel.get('button1nk').setVisible(false);
  26.   }
  27. });
复制代码
后端api函数:getChildTree
  1. let AbstractAPIHandler = require('AbstractAPIHandler');
  2.   class MyAPIHandler extends AbstractAPIHandler {
  3.    execute(request){
  4.      let id = request.id;
  5.      let sql = "select count(1) as count from AT18EE15E23EB8000A.AT18EE15E23EB8000A.treeTable where dr = 0 and parent = '" + id +"'";
  6.      var res = ObjectStore.queryByYonQL(sql);
  7.    return {res};
  8. }
  9. }
  10. exports({"entryPoint":MyAPIHandler});
复制代码
后端api函数:delTreeNode
  1. let AbstractAPIHandler = require('AbstractAPIHandler');
  2.   class MyAPIHandler extends AbstractAPIHandler {
  3.    execute(request){
  4.      let id = request.id;
  5.      var object = {id:id};
  6.      let res = ObjectStore.deleteById("AT18EE15E23EB8000A.AT18EE15E23EB8000A.treeTable",object,"treeTableModal");

  7.    return {res};
  8. }
  9. }
  10. exports({"entryPoint":MyAPIHandler});
复制代码
四、最终效果
查看

编辑 上级分类设置为只读

删除

新增平级和新增下级  上级分类最好设置成只读



本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
1
帖子
1
勋章
4882
Y币
学习中,这么多代码吗
32
帖子
1
勋章
248
Y币
左树右表,选中左边的父节点,右边表格的数据不能默认显示,需要点击右上角的“表格设置”才能显示数据,这是系统bug ?
32
帖子
1
勋章
248
Y币
删除父节点数据异常,大佬有类似问题吗?
2023-11-05 16:33:15.637 ERROR [http-nio-8080-exec-4] [c.y.i.y.session.web.YmsContextFilter] [] [] [] [sr] [] [http://local**.**:8080/web/funct ... xClass.getChildTree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,,,test,] - [a00BlankNotOTT] A00为空并且非OTT, URL: http://local**.**:8080/web/funct ... xClass.getChildTree
2023-11-05 16:33:16.081 ERROR [http-nio-8080-exec-4] [c.y.i.y.e.i.script.ScriptFileUtils] [0000ee7287f3e20d] [8ffafcf25738251d] [89c15444c8f242fe] [cs] [] [http://local**.**:8080/web/funct ... xClass.getChildTree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 从路径 D:\git\baigong-ypd/script/d6xscxbs/9b956d366aa046c3917fbb063dd859f7/e2b328684aab493baf223126e10b598c 读取文件失败
2023-11-05 16:33:16.241 ERROR [http-nio-8080-exec-6] [c.y.i.y.session.web.YmsContextFilter] [] [] [] [sr] [] [http://local**.**:8080/web/funct ... exClass.delTreeNode] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,,,test,] - [a00BlankNotOTT] A00为空并且非OTT, URL: http://local**.**:8080/web/funct ... exClass.delTreeNode
2023-11-05 16:33:16.349 ERROR [http-nio-8080-exec-6] [c.y.i.y.e.i.script.ScriptFileUtils] [146dfd1d8b0ece6a] [9ec54be3f09be996] [7a99a44204139179] [cs] [] [http://local**.**:8080/web/funct ... exClass.delTreeNode] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 从路径 D:\git\baigong-ypd/script/d6xscxbs/7d83c4fbdfeb4beea4d2e8ee2026ef40/4bb3229270804452a75e18e84ad51703 读取文件失败
2023-11-05 16:33:16.636 ERROR [http-nio-8080-exec-6] [c.y.i.y.s.scriptapi.console.Error] [146dfd1d8b0ece6a] [dd257654d327ee55] [9ec54be3f09be996] [cs] [] [http://local**.**:8080/web/funct ... exClass.delTreeNode] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 函数执行失败,异常信息:"操作业务实体失败fullName: \tbggwbzzy.bggwbzzy.index_classdata: {\"id\":\"1855036043713576960\",\"_status\":\"Delete\"}action: delete 错误信息:http requset error. statusCode:400, url:https://bip-poc**.**/iuap-metada ... ggwbzzy.index_class, reponse:<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>"
2023-11-05 16:33:16.736 ERROR [http-nio-8080-exec-6] [c.y.i.y.s.c.WebApiInvokeController] [146dfd1d8b0ece6a] [b0ab2a60b0d6e065] [dd257654d327ee55] [cs] [] [http://local**.**:8080/web/funct ... exClass.delTreeNode] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - invoke function error [bggwbzzy.indexClass.delTreeNode]"操作业务实体失败fullName: \tbggwbzzy.bggwbzzy.index_classdata: {\"id\":\"1855036043713576960\",\"_status\":\"Delete\"}action: delete 错误信息:http requset error. statusCode:400, url:https://bip-poc**.**/iuap-metada ... ggwbzzy.index_class, reponse:<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>" com.yonyou.iuap**.**mon.exception.BusinessException: "操作业务实体失败fullName: \tbggwbzzy.bggwbzzy.index_classdata: {\"id\":\"1855036043713576960\",\"_status\":\"Delete\"}action: delete 错误信息:http requset error. statusCode:400, url:https://bip-poc**.**/iuap-metada ... ggwbzzy.index_class, reponse:<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>"
        at com.yonyou.iuap.yonscript.support.impl.WebApiInvokeServiceImpl.webApiHandler(WebApiInvokeServiceImpl.java:76)
        at com.yonyou.iuap.yonscript.support.impl.WebApiInvokeServiceImpl$$FastClassBySpringCGLIB$$618aa6c.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
        at com.yonyou.iuap.yonscript.support.impl.WebApiInvokeServiceImpl$$EnhancerBySpringCGLIB$$fb9d5a0d.webApiHandler(<generated>)
        at com.yonyou.iuap.yonscript.support.controller.WebApiInvokeController.handler(WebApiInvokeController.java:40)
        at com.yonyou.iuap.yonscript.support.controller.WebApiInvokeController$$FastClassBySpringCGLIB$$de870209.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
        at com.yonyou.iuap.yonscript.support.controller.WebApiInvokeController$$EnhancerBySpringCGLIB$$fe52a503.handler(<generated>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.diwork.filter.SwitchTenantAndIdentityFilter.doFilter(SwitchTenantAndIdentityFilter.java:95)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.diwork.filter.RobotContextFilter.doFilter(RobotContextFilter.java:91)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.iuap.yms.session.web.YmsSessionFilter.doFilter(YmsSessionFilter.java:97)
        at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.cloud.filter.ZoneFilter.lambda$doFilter$0(ZoneFilter.java:107)
        at io.github.resilience4j.decorators.Decorators$DecorateSupplier.get(Decorators.java:166)
        at com.yonyou.cloud.middleware.framework.IrisBulkheadLimit.call(IrisBulkheadLimit.java:308)
        at com.yonyou.cloud.filter.ZoneFilter.doFilter(ZoneFilter.java:114)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.iuap.yms.session.web.YmsContextFilter.chainWithContext(YmsContextFilter.java:204)
        at com.yonyou.iuap.yms.session.web.YmsContextFilter.doFilter(YmsContextFilter.java:73)
        at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
        at org.apache.tomcat**.**.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat**.**.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)

2023-11-05 16:33:16.759 ERROR [http-nio-8080-exec-8] [c.y.i.y.session.web.YmsContextFilter] [] [] [] [sr] [] [http://local**.**:8080/bill/querytree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,,,test,] - [a00BlankNotOTT] A00为空并且非OTT, URL: http://local**.**:8080/bill/querytree
2023-11-05 16:33:17.208 ERROR [http-nio-8080-exec-8] [c.y.ucf.mdd.ext.dao.meta.UIMetaUtils] [2ff2e899b3f0ecb6] [] [] [sr] [] [http://local**.**:8080/bill/querytree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 表单与参照设置的数据源不一致,请开发人员查看核实 billContext.getFullname: bggwbzzy.bggwbzzy.index_class ; entity.getDataSourceName: bggwbzzy.bggwbzzy.index_factor ; billNum: index_classTreeTable ;
2023-11-05 16:33:17.209 ERROR [http-nio-8080-exec-8] [c.y.ucf.mdd.ext.dao.meta.UIMetaUtils] [2ff2e899b3f0ecb6] [] [] [sr] [] [http://local**.**:8080/bill/querytree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 表单与参照设置的数据源不一致,请开发人员查看核实 billContext.getFullname: bggwbzzy.bggwbzzy.index_class ; entity.getDataSourceName: bggwbzzy.bggwbzzy.index_factor ; billNum: index_classTreeTable ;
32
帖子
1
勋章
248
Y币
删除树节点报错,大佬又遇到类似问题吗?

2023-11-05 16:33:15.637 ERROR [http-nio-8080-exec-4] [c.y.i.y.session.web.YmsContextFilter] [] [] [] [sr] [] [xxxxxxxxxxxxxxxxxxx getChildTree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,,,test,] - [a00BlankNotOTT] A00为空并且非OTT, URL: xxxxxxxxxxxxxxxxxxx getChildTree
2023-11-05 16:33:16.081 ERROR [http-nio-8080-exec-4] [c.y.i.y.e.i.script.ScriptFileUtils] [0000ee7287f3e20d] [8ffafcf25738251d] [89c15444c8f242fe] [cs] [] [xxxxxxxxxxxxxxxxxxx getChildTree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 从路径 D:\git\baigong-ypd/script/d6xscxbs/9b956d366aa046c3917fbb063dd859f7/e2b328684aab493baf223126e10b598c 读取文件失败
2023-11-05 16:33:16.241 ERROR [http-nio-8080-exec-6] [c.y.i.y.session.web.YmsContextFilter] [] [] [] [sr] [] [xxxxxxxxxxxxxxxxxxx delTreeNode]] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,,,test,] - [a00BlankNotOTT] A00为空并且非OTT, URL: xxxxxxxxxxxxxxxxxxx delTreeNode]
2023-11-05 16:33:16.349 ERROR [http-nio-8080-exec-6] [c.y.i.y.e.i.script.ScriptFileUtils] [146dfd1d8b0ece6a] [9ec54be3f09be996] [7a99a44204139179] [cs] [] [xxxxxxxxxxxxxxxxxxx delTreeNode]] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 从路径 D:\git\baigong-ypd/script/d6xscxbs/7d83c4fbdfeb4beea4d2e8ee2026ef40/4bb3229270804452a75e18e84ad51703 读取文件失败
2023-11-05 16:33:16.636 ERROR [http-nio-8080-exec-6] [c.y.i.y.s.scriptapi.console.Error] [146dfd1d8b0ece6a] [dd257654d327ee55] [9ec54be3f09be996] [cs] [] [xxxxxxxxxxxxxxxxxxx delTreeNode]] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 函数执行失败,异常信息:"操作业务实体失败fullName: \tbggwbzzy.bggwbzzy.index_classdata: {\"id\":\"1855036043713576960\",\"_status\":\"Delete\"}action: delete 错误信息:http requset error. statusCode:400, url:网址/%09bggwbzzy.bggwbzzy.index_class, reponse:<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>"
2023-11-05 16:33:16.736 ERROR [http-nio-8080-exec-6] [c.y.i.y.s.c.WebApiInvokeController] [146dfd1d8b0ece6a] [b0ab2a60b0d6e065] [dd257654d327ee55] [cs] [] [xxxxxxxxxxxxxxxxxxx delTreeNode]] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - invoke function error [bggwbzzy.indexClass.delTreeNode]"操作业务实体失败fullName: \tbggwbzzy.bggwbzzy.index_classdata: {\"id\":\"1855036043713576960\",\"_status\":\"Delete\"}action: delete 错误信息:http requset error. statusCode:400, url:网址/%09bggwbzzy.bggwbzzy.index_class, reponse:<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>" com.yonyou.iuap**.**mon.exception.BusinessException: "操作业务实体失败fullName: \tbggwbzzy.bggwbzzy.index_classdata: {\"id\":\"1855036043713576960\",\"_status\":\"Delete\"}action: delete 错误信息:http requset error. statusCode:400, url:网址/%09bggwbzzy.bggwbzzy.index_class, reponse:<!doctype html><html lang=\"en\"><head><title>HTTP Status 400 – Bad Request</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>"
        at com.yonyou.iuap.yonscript.support.impl.WebApiInvokeServiceImpl.webApiHandler(WebApiInvokeServiceImpl.java:76)
        at com.yonyou.iuap.yonscript.support.impl.WebApiInvokeServiceImpl$$FastClassBySpringCGLIB$$618aa6c.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
        at com.yonyou.iuap.yonscript.support.impl.WebApiInvokeServiceImpl$$EnhancerBySpringCGLIB$$fb9d5a0d.webApiHandler(<generated>)
        at com.yonyou.iuap.yonscript.support.controller.WebApiInvokeController.handler(WebApiInvokeController.java:40)
        at com.yonyou.iuap.yonscript.support.controller.WebApiInvokeController$$FastClassBySpringCGLIB$$de870209.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
        at com.yonyou.iuap.yonscript.support.controller.WebApiInvokeController$$EnhancerBySpringCGLIB$$fe52a503.handler(<generated>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.diwork.filter.SwitchTenantAndIdentityFilter.doFilter(SwitchTenantAndIdentityFilter.java:95)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.diwork.filter.RobotContextFilter.doFilter(RobotContextFilter.java:91)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.iuap.yms.session.web.YmsSessionFilter.doFilter(YmsSessionFilter.java:97)
        at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.cloud.filter.ZoneFilter.lambda$doFilter$0(ZoneFilter.java:107)
        at io.github.resilience4j.decorators.Decorators$DecorateSupplier.get(Decorators.java:166)
        at com.yonyou.cloud.middleware.framework.IrisBulkheadLimit.call(IrisBulkheadLimit.java:308)
        at com.yonyou.cloud.filter.ZoneFilter.doFilter(ZoneFilter.java:114)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at com.yonyou.iuap.yms.session.web.YmsContextFilter.chainWithContext(YmsContextFilter.java:204)
        at com.yonyou.iuap.yms.session.web.YmsContextFilter.doFilter(YmsContextFilter.java:73)
        at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
        at org.apache.tomcat**.**.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
        at org.apache.tomcat**.**.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)

2023-11-05 16:33:16.759 ERROR [http-nio-8080-exec-8] [c.y.i.y.session.web.YmsContextFilter] [] [] [] [sr] [] [网址/bill/querytree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,,,test,] - [a00BlankNotOTT] A00为空并且非OTT, URL: 网址/bill/querytree
2023-11-05 16:33:17.208 ERROR [http-nio-8080-exec-8] [c.y.ucf.mdd.ext.dao.meta.UIMetaUtils] [2ff2e899b3f0ecb6] [] [] [sr] [] [网址/bill/querytree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 表单与参照设置的数据源不一致,请开发人员查看核实 billContext.getFullname: bggwbzzy.bggwbzzy.index_class ; entity.getDataSourceName: bggwbzzy.bggwbzzy.index_factor ; billNum: index_classTreeTable ;
2023-11-05 16:33:17.209 ERROR [http-nio-8080-exec-8] [c.y.ucf.mdd.ext.dao.meta.UIMetaUtils] [2ff2e899b3f0ecb6] [] [] [sr] [] [网址/bill/querytree] [terminalType=1&busiObj=index_class&designPreview=true] [DEV,bg-test,,d6xscxbs,ec4326d0-d490-4d5a-9105-260b51fd16d0,test,] - 表单与参照设置的数据源不一致,请开发人员查看核实 billContext.getFullname: bggwbzzy.bggwbzzy.index_class ; entity.getDataSourceName: bggwbzzy.bggwbzzy.index_factor ; billNum: index_classTreeTable ;
32
帖子
1
勋章
248
Y币
左侧树的数据删除失败,大佬能帮忙看看吗?
32
帖子
1
勋章
248
Y币
BIP761384 · 2023-11-5 16:56左侧树的数据删除失败,大佬能帮忙看看吗?

日志大致为:
A00为空并且非OTT,xxx;
表单与参照设置的数据源不一致,请开发人员查看核实 billContext.getFullname: bggwbzzy.bggwbzzy.index_class ; entity.getDataSourceName: bggwbzzy.bggwbzzy.index_factor ; billNum: index_classTreeTable ;
143
帖子
2
勋章
4万+
Y币
BIP761384 · 2023-11-5 16:25
左树右表,选中左边的父节点,右边表格的数据不能默认显示,需要点击右上角的“表格设置”才能显示数据,这是系统bug ?

表格的关联实体切换一下  文档里红字部分有说明
143
帖子
2
勋章
4万+
Y币
BIP761384 · 2023-11-5 16:57
日志大致为:
A00为空并且非OTT,xxx;
表单与参照设置的数据源不一致,请开发人员查看核实 billContext.getFullname: bggwbzzy.bggwbzzy.index_class ; entity.getDataSourceName: bggwbzzy.bggwbzzy.index_facto ...

你这个私有云的吧  确定不了问题  这个案例是公有云环境做的
32
帖子
1
勋章
248
Y币
yonyouhmm · 2023-11-5 17:27表格的关联实体切换一下  文档里红字部分有说明

这个已经做了切换,不切换的话,数据压根不会显示,切换以后需要触发一下列表设置数据可以显示。
12下一页
您需要登录后才可以回帖 登录

本版积分规则