1、修改了应用程序设计分类改变发布后应用程序库中没变的问题。
修改文件:src/main/java/cn/tzsoft/roadflow/service/ProgramService.java
2、修改了多人不同步骤同时编辑表单时存在数据覆盖的问题。
修改文件:src/main/java/cn/tzsoft/roadflow/service/FlowDataService.java
增加方法:
/** * 更新表单json数据,取原来数据json(rf_flow_data表中的json数据)来更新当前步骤状态不为编辑的字段。 * * @param dataJson json数据 * @param groupId 组id * @param stepFieldStatus 步骤上设置的字段状态 */ public void updateStepDataJson(JsonNode dataJson, long groupId, List<FlowRunStepDataModel> stepFieldStatus) { if (dataJson == null || stepFieldStatus == null || stepFieldStatus.size() == 0 || groupId < IdGenerator.MIN_VALUE) { return; } long formId = JsonUtils.getLong(dataJson, "formId"); FlowDataModel flowDataModel = get(groupId, formId); if (flowDataModel == null) { return; } JsonNode dataJson1 = JsonUtils.getJsonNode(flowDataModel.getJsonData()); if (dataJson1.isEmpty()) { return; } ObjectNode objectNode = (ObjectNode) dataJson; for (Iterator<String> it = dataJson.fieldNames(); it.hasNext(); ) { String key = it.next(); FlowRunStepDataModel status = stepFieldStatus.stream().filter(s -> s.getId().equals(key)).findFirst().orElse(null); //如果不是编辑状态,则用原有数据替换。 if (status != null && status.getStatus() != 0) { objectNode.set(key, JsonUtils.getJsonNode(dataJson1, key)); } } //子表 FormModel formModel = formService.get(JsonUtils.getLong(dataJson, "formCode")); //bool isCustomForm = false;//是否是自定义表单 if (formModel == null) { //自定义表单,从dataJson中的formAttrJson取表单设置。 formModel = new FormModel(); formModel.setAttrJson(JsonUtils.getString(dataJson, "formAttrJson")); formModel.setSubtableJson(JsonUtils.getString(dataJson, "formSubtableJson")); } if (StringUtils.isBlank(formModel.getAttrJson())) { return; } ArrayNode subtableJArray = JsonUtils.getArrayNode(formModel.getSubtableJson()); for (JsonNode subtableJ : subtableJArray) { String subtableId = JsonUtils.getString(subtableJ, "id"); if (StringUtils.isBlank(subtableId)) { subtableId = JsonUtils.getString(subtableJ, "table"); } ArrayNode stubtableDataJson = JsonUtils.getArrayNode(dataJson, subtableId); ArrayNode stubtableDataJson1 = JsonUtils.getArrayNode(dataJson1, subtableId); //循环子表数据行 for (JsonNode subtableDataJ : stubtableDataJson) { //循环子表数据列 ObjectNode subtableDataJObjectNode = (ObjectNode) subtableDataJ; for (Iterator<String> it = subtableDataJ.fieldNames(); it.hasNext(); ) { String subtableDataKey = it.next(); if (subtableDataKey.equals("key")) { continue; } String finalSubtableId = subtableId; FlowRunStepDataModel subStatus = stepFieldStatus.stream().filter(s -> s.getId().equals((finalSubtableId + "." + subtableDataKey).toLowerCase())).findFirst().orElse(null); //如果不是编辑状态,则用原有数据替换。 if (subStatus != null && subStatus.getStatus() != 0) { for (JsonNode subtableDataJ1 : stubtableDataJson1) { if (JsonUtils.getString(subtableDataJ1, "key").equals(JsonUtils.getString(subtableDataJ, "key"))) { subtableDataJObjectNode.set(subtableDataKey, JsonUtils.getJsonNode(subtableDataJ1, subtableDataKey)); } } } } } } }
修改文件:src/main/java/cn/tzsoft/roadflow/service/FlowRunService.java
3、登录增加了验证码。
增加文件:src/main/java/cn/tzsoft/roadflow/service/VerifyCodeService.java
增加文件:src/main/java/cn/tzsoft/roadflow/common/VerifyCodeUtils.java
修改文件:src/main/java/cn/tzsoft/roadflow/controller/web/FilesController.java
修改文件:src/main/java/cn/tzsoft/roadflow/controller/webapi/HomeController.java
修改文件:src/web/element/src/roadui-pages/login.vue
联系QQ:493501010电话:136 0832 5512(微信同号)邮箱:road@roadflow.net
Copyright 2014 - 2024 重庆天知软件技术有限公司 版权所有
|