From 0e3a6cac9b374fca07b94768f03ecd9ec389acc9 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 24 四月 2024 17:17:40 +0800 Subject: [PATCH] 4、因日志记录的大字段信息太长导致卡顿,所以调整集成日志,操作日志,本地日志,修改表格列表不查询显示大字段,点击详情时才显示详细信息。 5、日志页面增加查询属性(页面显示的属性都加上),支持模糊查询。 --- Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 48 insertions(+), 8 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java index 6bb3dad..320f739 100644 --- a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java +++ b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java @@ -18,6 +18,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.map.CaseInsensitiveMap; import org.jetbrains.annotations.NotNull; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; @@ -29,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import java.io.*; import java.util.*; import java.util.stream.Collectors; @@ -219,8 +221,9 @@ // 3.1銆侀�氳繃璇ユ潯鏁版嵁鐨勫垎绫籭d锛屾嬁鍒伴泦鍥㈠睘鎬ф槧灏勯厤缃紝鐢ㄦ潵灏嗛泦鍥㈢殑灞炴�ф槧灏勫埌鎴戜滑绯荤粺鐨勫睘鎬� List<DockingPreAttrMapping> dockingPreAttrMappings = dockingPreAttrMappingService.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, codeclsfid).eq(DockingPreAttrMapping::getViewName,"缂栫爜瑙嗗浘")); if(Func.isNotEmpty(dockingPreAttrMappings)){ + log.info("寮�濮嬭皟鐢╯ourceAttrKey2TargetKey鏂规硶銆�"); //鏍规嵁闆嗗洟灞炴�ф槧灏勫皢闆嗗洟杞埌鎴戜滑绯荤粺锛屽苟淇敼涓嶄竴鑷寸殑鍒版垜浠郴缁熶腑瀵瑰簲鐨勮鏉¤褰曠殑鍊� - sourceAttrKey2TargetKey(dockingPreAttrMappings, viewValueList.get(0), oldDatalist, baseModel); + sourceAttrKey2TargetKey(dockingPreAttrMappings, viewValueList.get(0), baseModel); } } log.info("鐢宠鍗�:"+applyId+",闆嗗洟鐮侊細"+customCoding+"缂栫爜锛�"+baseModel.getId()); @@ -253,33 +256,70 @@ * 鏍规嵁闆嗗洟灞炴�ф槧灏勫皢闆嗗洟杞埌鎴戜滑绯荤粺 * @param dockingPreAttrMappings * @param viewValueMap - * @param oldDatalist * @param baseModel */ - private void sourceAttrKey2TargetKey(List<DockingPreAttrMapping> dockingPreAttrMappings,Map<String, Object> viewValueMap, List<BaseModel> oldDatalist,BaseModel baseModel){ - Map<String, Object> targetKeyMap = new HashMap<>(); + private void sourceAttrKey2TargetKey(List<DockingPreAttrMapping> dockingPreAttrMappings,Map<String, Object> viewValueMap,BaseModel baseModel) throws ServiceException { + log.info("寮�濮嬫牴鎹泦鍥㈠睘鎬ф槧灏勶紝灏嗛泦鍥㈠睘鎬ц浆鎴愮紪鐮佺郴缁熷睘鎬э紝骞惰繘琛屾槸鍚︿慨鏀圭殑姣斿锛�"); + //娣辨嫹璐濊褰曚笅鍘熷璞★紝濡傛灉鏈夋洿鏀圭敤鏉ユ斁鍦ㄦ棫涓氬姟鏁版嵁瀛楁锛坥ldbusinessdata锛変笂 + BaseModel oldBaseModel = null; + try { + oldBaseModel = deepCopy(baseModel); + } catch (Exception e) { + log.error("璁板綍鏃х殑涓氬姟鏁版嵁鏃讹紝baseModel瀵硅薄娣辨嫹璐濆嚭鐜伴敊璇紝鍘熷洜锛�"+e.getMessage()); + e.printStackTrace(); + throw new ServiceException("璁板綍鏃х殑涓氬姟鏁版嵁鏃讹紝baseModel瀵硅薄娣辨嫹璐濆嚭鐜伴敊璇紝鍘熷洜锛�"+e.getMessage()); + } + Map<String, Object> targetKeyMap = new CaseInsensitiveMap<>(); // 灏嗛泦鍥㈠睘鎬ц浆鎴愭垜浠郴缁熷睘鎬х殑map dockingPreAttrMappings.stream().forEach(item->{ targetKeyMap.put(item.getTargetAttrKey(),viewValueMap.get(item.getSourceAttrKey())); }); // 姣斿baseModel鐨刣ata涓殑灞炴�ф槸鍚﹀拰targetKeyMap涓嶄竴鑷达紝涓嶄竴鑷寸殑璇濆氨闇�瑕佸皢baseModel鐨刣ata涓殑瀵瑰簲key鐨剉alue鍊艰浆鎴愰泦鍥㈢殑 boolean isEdit = false; + // 蹇界暐澶у皬鍐� + Map caseInsensitiveMap = new CaseInsensitiveMap(baseModel.getData()); for (Map.Entry<String, Object> entry : targetKeyMap.entrySet()) { String key = entry.getKey(); Object targetValue = entry.getValue(); - String dataValue = baseModel.getData().get(key); - + String dataValue = String.valueOf(caseInsensitiveMap.get(key)); if (targetValue != null && !targetValue.equals(dataValue)) { - baseModel.getData().put(key, targetValue.toString()); + caseInsensitiveMap.put(key, targetValue.toString()); isEdit = true; } } // 闆嗗洟瀵规垜浠郴缁熷睘鎬у仛浜嗚皟鏁达紝鎴戜滑闇�瑕佸鑰佺殑涓氬姟鏁版嵁鍋氳褰� if (isEdit) { - baseModel.getData().put("oldbusinessdata", JSON.toJSONString(oldDatalist)); + log.info("闆嗗洟杩斿洖鐨勬暟鎹瓨鍦ㄥ樊寮傦紝寮�濮嬫墽琛屽缂栫爜绯荤粺basemodel瀵硅薄淇敼鎿嶄綔锛�"); + // 娓呯┖鍘熷厛鐨刴ap锛屼娇鐢ㄦ柊鐨勪笉鍖哄垎key澶у皬鍐欑殑map + baseModel.getData().clear(); + baseModel.getData().putAll(caseInsensitiveMap); + // 绉婚櫎鍘嗗彶鐨刼ldbusinessdata瀛楁锛屽惁鍒欎細瓒呴暱 + oldBaseModel.getData().remove("oldbusinessdata"); + baseModel.getData().put("oldbusinessdata", JSON.toJSONString(oldBaseModel)); } } + /** + * 娣辨嫹璐� + * @param baseModel + * @return + * @throws ClassNotFoundException + * @throws IOException + */ + public static BaseModel deepCopy(BaseModel baseModel) throws ClassNotFoundException, IOException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(bos); + oos.writeObject(baseModel); + oos.close(); + + ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); + ObjectInputStream ois = new ObjectInputStream(bis); + BaseModel copy = (BaseModel) ois.readObject(); + ois.close(); + + return copy; + } + /*** * 鎺ュ彈闆嗗洟鍒嗙被涓绘ā鍨嬫暟鎹� * @param dockingClassifyModelAttrVO -- Gitblit v1.9.3