| sql/mysql/fix_act_re_model_rev_null.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
sql/mysql/fix_act_re_model_rev_null.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ -- ===================================================================== -- ä¿®å¤ ACT_RE_MODEL.REV_ 为 NULL å¯¼è´æµç¨æ¨¡åä¿åæ¥ 500ãç³»ç»å¼å¸¸ã -- -- ç°è±¡ï¼ -- æµç¨æ¨¡å â ä¿®æ¹ â ä¿å / åå¸ï¼æ¥ãæä½æµç¨å¤±è´¥ï¼åå ï¼ä½ 䏿¯è¯¥æµç¨(xxx)ç管çåãï¼ -- æä¿åæ¶ 500ãç³»ç»å¼å¸¸ãï¼æ¥å¿ä¸º FlowableOptimisticLockingExceptionï¼ã -- -- æ ¹å ï¼ -- 1) managerUserIds 为空ï¼NULL / []ï¼æ¶ï¼å端 validateModelManager ä»»ä½äººé½æ ¡éªä¸è¿ï¼ -- 模åå½»åºåæãæ 主ãï¼è°é½æ æ³ä¿®æ¹ï¼æ»éï¼â ç±åç«¯ä»£ç æ¾å®½ä¸ºãè¶ çº§ç®¡çåå§ç»æ¾è¡ãã -- 2) ACT_RE_MODEL.REV_ æ¯ Flowable çä¹è§éçæ¬åï¼ä¸º NULL æ¶ -- UPDATE ... WHERE REV_ = NULL æ°¸è¿å¹é ä¸å°ï¼æä¹è§éå¼å¸¸ â éè¦æ NULL è¡¥æ 1ã -- -- å½±åèå´ï¼ä¿®å¤å宿µï¼ï¼ -- åæ¹ç§æ mom-bfkjï¼21 个模åä¸ 14 个 REV_ 为 NULL -- èç¾½çº¸ä¸ mom-lyzyï¼24 个模åä¸ 14 个 REV_ 为 NULL -- -- æ§è¡æ¬èæ¬çåºï¼mom-bfkjãmom-lyzyï¼ä¸¤å®¶é½è¦æ§è¡ï¼ -- ===================================================================== -- ä¿®å¤ä¹è§éçæ¬å·ä¸º NULL çè®°å½ UPDATE ACT_RE_MODEL SET REV_ = 1 WHERE REV_ IS NULL; -- éªè¯ï¼ä¸åºååºç° NULL SELECT ifnull(cast(REV_ as char), '<NULL>') AS REV, COUNT(*) AS æ¡æ° FROM ACT_RE_MODEL GROUP BY REV_ ORDER BY REV_; yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java
@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModelSaveReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO; @@ -204,6 +205,13 @@ private Model validateModelManager(String id, Long userId) { Model model = validateModelExists(id); BpmModelMetaInfoVO metaInfo = BpmModelConvert.INSTANCE.parseMetaInfo(model); // è¶ çº§ç®¡çåå§ç»æ¥ææµç¨æ¨¡åçç»´æ¤æéã // èæ¯ï¼å岿¨¡åç managerUserIds å¯è½ä¸ºç©ºï¼NULL / []ï¼ï¼ææåå·²å é¤ / 已忴çç¨æ·ï¼ // ä¸¥æ ¼æ ¡éªä¼è®©è¿äºæ¨¡åå乿 æ³ä¿®æ¹ï¼æ»éï¼å®¢æ·æ¥ãä½ ä¸æ¯è¯¥æµç¨(xxx)ç管çåãå´æ æ³èªæï¼ï¼ // å¦å¤å®¢æ·è¦æ±ææµç¨ç®¡çååºå®ä¸ºè¶ 级管çåï¼æ¤æ ¡éªå¯¹å ¶ä¸åéç¨ã if (SecurityFrameworkUtils.isSuperAdmin()) { return model; } if (metaInfo == null || !CollUtil.contains(metaInfo.getManagerUserIds(), userId)) { throw exception(MODEL_UPDATE_FAIL_NOT_MANAGER, model.getName()); }