flowable执行监听器动态指定审批人在退回时产生的bug 退回产生的bug,有一个结点,本身是通过执行监听器判断上一个结点的审批人来得到这个结点的审批人。之前是通过直接的获取最新task来拿到,但是在退回场景下,最新task为退回结点,故产生错误。遍历原始bpmn模型找到正确的前驱结点,再从HistoricTask中拿到历史任务信息进行比对。给出我自己业务中的完整代码,有需要可按自己情况进行更改,核心代码如上。
ThreadLocal与ThreadLocalMap 静态内部类可以访问外部类的静态成员(包括静态变量和静态方法),但不能直接访问外部类的实例成员,除非你有一个外部类的实例。:与非静态内部类(也称为成员内部类)不同,静态内部类不需要外部类的实例即可创建。这意味着你可以直接通过外部类的名称来创建静态内部类的实例,而不需要先实例化外部类。:静态内部类在语法上与顶级类相似,可以像顶级类那样自由地使用,而不会与外部类的实例产生任何联系。的值,并打印出当前线程的名字和线程局部变量的值。类中的一个静态内部类,但它存在于每个线程的。的类,其中包含一个静态内部类。
实习碰到的问题w1 默认的候选人,候选部门、候选角色可以存在 assignee、candidateusers、candidategroups字段。当一个 form 元素中只有一个输入框时,在该输入框中按下回车应提交该表单。如果希望阻止这一默认。ps:异地实习,公司挺不错,感觉氛围很好,互联网企业中一股清流了,大爱。实际上传递是bpmn2格式的xml,然后后端进行解析。
使用 Spring 事件监听机制实现跨模块调用 之前一个项目,有两个模块,A 模块需要依赖 B 模块,但现在 B 模块有地方需要调用 A 模块的方法,如果直接依赖,又会产生循环依赖问题。最终选择使用 spring 的事件监听来解决该问题。思路就是,B 模块去发布事件,A 中监听,得到数据后,通过引用返回给 B。然后在 B 中去发布事件。最后在 A 中监听事件。
使用bootstrap报错ava.lang.IllegalArgumentException: Param ‘serviceName‘ is illegal, serviceName is blank 根据字面意思就是说没有服务名,但是明明配置了,后来跟着网上别的来也不太行,且application.yml情况下可以正常运行。最后了解到是因为高版本springboot需要手动引入bootstrap依赖。至此,配置中心正确运行。
实习期间后端问题3 对cglib了解不多,暂时大概了解了就是private情况下,cglib代理逻辑走到某步会为空然后报错。经过测试,如果controller中有public、private。调用public方法的时候bean会变得有值,调用private就会变成null。所以public和private共存的情况下,public是可以正常调用而不报空的。cglib有待学习。
实习期间碰到的前端问题3 1.el-input只希望输入正整数oninput = "value=value.replace(/[^\d]+/g,'')" 限制只能输入数字,如果输入非数字,会被替换为空(负号和小数点也会被替换,所有实际上等于只能输入正整数)value.replace(/[^\d]+/g,''):value 是要进行替换操作的字符串。replace() 是 JavaScript 的字符串方法,用于将匹配到的字符串进行替换。/[^\d]+/g 是一个正则表达式,用于匹配除了数字(\d)之外的任意字符。其中
实习期间遇到的前端问题 2 实现效果:点击外部北部按钮动态增加表格的行。点击表格表格每行第二列的加减按钮,动态加减每行输入框本质上也很简单:1.动态增加表格行,就是动态去往表格绑定的数组里面添加元素(减少也同理)2.动态增加输入框,也是动态去改变数组元素3.如果希望指定位置去增加减少,那就必须传入索引值,然后根据索引值对数组进行操作。每行上的按钮的绑定方法传入可以获取表格当前行的索引值。我的gif中的第二列依靠v-for完成,所以按钮的绑定方法传入v-for的index可以拿到索引值。
实习期间遇到的后端问题(1) 想通过后端来直接获取前端传递的数组,最开始只想到了类里面放一个list来接收,但是不想写类,故通过map接收请求体,然后以键值对方式拿到数组,但是这样存在问题是swagger界面反馈的前端的示例有问题,且无法通过swagger注解修正(可能单纯我没找到方法)。最后发现可以直接请求体传递数组,然后后端直接list来接收。纯脑抽总结:后端可接收请求体的三种方式:1.(前端传递json)2.(前端传递json)3.(前端传递数组)