From c8aee7b9bfd79cfd741d7e5692520f4f51a31a86 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期一, 18 五月 2020 18:30:01 +0800 Subject: [PATCH] bak 修改 获取版本数据前 --- src/main/java/com/highdatas/mdm/service/impl/MasterModifiedServiceImpl.java | 134 +++++++++++++++++++++++--------------------- 1 files changed, 71 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/impl/MasterModifiedServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MasterModifiedServiceImpl.java index 2abd336..a3c5431 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/MasterModifiedServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/MasterModifiedServiceImpl.java @@ -1,10 +1,8 @@ package com.highdatas.mdm.service.impl; import com.alibaba.fastjson.JSONObject; -import com.google.gson.JsonObject; import com.highdatas.mdm.entity.Maintain; import com.highdatas.mdm.entity.SysField; -import com.highdatas.mdm.entity.TUser; import com.highdatas.mdm.entity.TableSchemaResult; import com.highdatas.mdm.mapper.MaintainFieldMapper; import com.highdatas.mdm.mapper.MasterModifiedMapper; @@ -42,8 +40,6 @@ TableInfoMapper tableInfoMapper; @Autowired IMaintainFieldService maintainFieldService; - @Autowired - ITUserService userService; @Autowired MaintainFieldMapper maintainFieldMapper; @Autowired @@ -124,75 +120,87 @@ @Override @Async public void dealFlow(String maintainId, ActivitiStatus status) { - Maintain maintain = maintainService.selectById(maintainId); - String tableName = maintain.getTableName(); - String recordTableName = tableName + Constant.RECORD; - List<Map<String,String>> modifiedList = masterModifiedMapper.selectByMaintainId(recordTableName, DbUtils.quotedStr(maintainId)); - switch (status) { - case open: - for (Map<String, String> masterModifiedMap : modifiedList) { - String preJson = masterModifiedMap.get(pre_record); - JSONObject jsonObject = JSONObject.parseObject(preJson); - if (jsonObject == null){ - continue; - } - Set<String> keySet = jsonObject.keySet(); - HashMap<String, String> userMap = new HashMap<>(); - for (String field : keySet) { - String userId = jsonObject.getString(field); - if (userMap.containsKey(userId)) { - String preFieldStr = userMap.get(userId); - field = preFieldStr + Constant.SEMICOLON + field; - } - userMap.put(userId, field); - } - List<TableSchemaResult> tableField = tableInfoMapper.getTableField(master_modified); - List<String> existsFieldList = tableField.stream().map(TableSchemaResult::getFieldName).collect(Collectors.toList()); - Set<String> userIdList = userMap.keySet(); - - if (!existsFieldList.containsAll(userIdList)) { - //鏂板涔嬪墠涓嶅瓨鍦ㄧ殑鐢ㄦ埛 - List<String> unExistsUserList = userIdList.stream().filter(s -> !existsFieldList.contains(s)).collect(Collectors.toList()); - for (String s : unExistsUserList) { - //鏂板瀛楁 - maintainFieldMapper.addCloumn(master_modified, s, Constant.Text); - } - } - masterModifiedMap.putAll(userMap); - updateById(masterModifiedMap); - } - break; - case close: - List<String> unUserIdList = new ArrayList<>(); - unUserIdList.add(Constant.ID); - unUserIdList.add(master_id); - unUserIdList.add(table_name); - unUserIdList.add(pre_record); - for (Map<String, String> masterModifiedMap : modifiedList) { - //todo 鍙嶆洿鏂� perjson 鑾峰彇褰撳墠琛ㄦ墍鏈夊彲鏇存敼鐨勭敤鎴� 涔嬪悗寰呬慨鏀� 鍏堜粠鏈湴user琛ㄤ腑鎷� - Set<String> keySet = masterModifiedMap.keySet(); - List<String> userIdList = keySet.stream().filter(s -> !unUserIdList.contains(s)).collect(Collectors.toList()); - JSONObject jsonObject = new JSONObject(); - for (String s : userIdList) { - String fields = masterModifiedMap.get(s); - if (StringUtils.isEmpty(fields)) { + try { + Maintain maintain = maintainService.selectById(maintainId); + if (maintain == null) { + return; + } + String tableName = maintain.getTableName(); + String recordTableName = tableName + Constant.RECORD; + List<Map<String,String>> modifiedList = masterModifiedMapper.selectByMaintainId(recordTableName, DbUtils.quotedStr(maintainId)); + switch (status) { + case open: + for (Map<String, String> masterModifiedMap : modifiedList) { + String preJson = masterModifiedMap.get(pre_record); + JSONObject jsonObject = JSONObject.parseObject(preJson); + if (jsonObject == null){ continue; } - String[] split = fields.split(Constant.SEMICOLON); - for (String field : split) { - jsonObject.fluentPut(field, s); + Set<String> keySet = jsonObject.keySet(); + HashMap<String, String> userMap = new HashMap<>(); + for (String field : keySet) { + String userId = jsonObject.getString(field); + if (userMap.containsKey(userId)) { + String preFieldStr = userMap.get(userId); + field = preFieldStr + Constant.SEMICOLON + field; + } + userMap.put(userId, field); } + List<TableSchemaResult> tableField = tableInfoMapper.getTableField(master_modified); + List<String> existsFieldList = tableField.stream().map(TableSchemaResult::getFieldName).collect(Collectors.toList()); + Set<String> userIdList = userMap.keySet(); + + if (!existsFieldList.containsAll(userIdList)) { + //鏂板涔嬪墠涓嶅瓨鍦ㄧ殑鐢ㄦ埛 + List<String> unExistsUserList = userIdList.stream().filter(s -> !existsFieldList.contains(s)).collect(Collectors.toList()); + for (String s : unExistsUserList) { + //鏂板瀛楁 + maintainFieldMapper.addCloumn(master_modified, s, Constant.Text); + } + } + masterModifiedMap.putAll(userMap); + updateById(masterModifiedMap); } - masterModifiedMap.put(pre_record, jsonObject.toJSONString()); - updateById(masterModifiedMap); - } - break; + break; + case close: + List<String> unUserIdList = new ArrayList<>(); + unUserIdList.add(Constant.ID); + unUserIdList.add(master_id); + unUserIdList.add(table_name); + unUserIdList.add(pre_record); + for (Map<String, String> masterModifiedMap : modifiedList) { + //todo 鍙嶆洿鏂� perjson 鑾峰彇褰撳墠琛ㄦ墍鏈夊彲鏇存敼鐨勭敤鎴� 涔嬪悗寰呬慨鏀� 鍏堜粠鏈湴user琛ㄤ腑鎷� + Set<String> keySet = masterModifiedMap.keySet(); + List<String> userIdList = keySet.stream().filter(s -> !unUserIdList.contains(s)).collect(Collectors.toList()); + JSONObject jsonObject = new JSONObject(); + for (String s : userIdList) { + String fields = masterModifiedMap.get(s); + if (StringUtils.isEmpty(fields)) { + continue; + } + String[] split = fields.split(Constant.SEMICOLON); + for (String field : split) { + jsonObject.fluentPut(field, s); + } + } + masterModifiedMap.put(pre_record, jsonObject.toJSONString()); + updateById(masterModifiedMap); + } + break; + } } + catch (Exception e) { + e.printStackTrace(); + } + } @Override public void dealAssemble(String maintainId, String userId, boolean audit) { List<SysField> fieldByMaintain = fieldService.getFieldByMaintain(maintainId); + if(fieldByMaintain == null) { + return; + } String fieldStr = fieldByMaintain.stream().map(SysField::getField).collect(Collectors.joining(Constant.SEMICOLON)); List<TableSchemaResult> tableField = tableInfoMapper.getTableField(master_modified); long count = tableField.stream().map(tableSchemaResult -> tableSchemaResult.getFieldName()).filter(s -> s.equalsIgnoreCase(userId)).count(); -- Gitblit v1.8.0