| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 在保存之前处理 glassPoint 数据 |
| | | for (Map<String, Object> detail : objectMap2) { |
| | | if (detail.containsKey("glassPoint")) { |
| | | Object glassPointObj = detail.get("glassPoint"); |
| | | if (glassPointObj != null) { |
| | | try { |
| | | // 如果 glassPointObj 已经是字符串,则不需要转换 |
| | | if (!(glassPointObj instanceof String)) { |
| | | // 将对象转换为 JSON 字符串 |
| | | String glassPointStr = mapper.writeValueAsString(glassPointObj); |
| | | detail.put("glassPoint", glassPointStr); |
| | | } |
| | | } catch (Exception e) { |
| | | // 如果转换失败,记录错误并移除该字段 |
| | | System.err.println("转换 glassPoint 失败: " + e.getMessage()); |
| | | detail.remove("glassPoint"); |
| | | } |
| | | } else { |
| | | // 如果 glassPointObj 为 null,移除该字段 |
| | | detail.remove("glassPoint"); |
| | | } |
| | | } |
| | | } |
| | | glassOptimizeMapper.addOptimizeDetail(objectMap2,projectId); |
| | | } |
| | | glassOptimizeMapper.updateProjectOptimizeStateMp(projectId,1); |
| | |
| | | if (offsets != null) { |
| | | allDetails.addAll(offsets); |
| | | } |
| | | |
| | | // 解析 glassPoint 字符串 |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | for (Map<String, Object> detail : allDetails) { |
| | | if (detail.containsKey("glassPoint")) { |
| | | Object glassPointObj = detail.get("glassPoint"); |
| | | if (glassPointObj instanceof String) { |
| | | String glassPointStr = (String) glassPointObj; |
| | | if (glassPointStr != null && !glassPointStr.isEmpty() && !glassPointStr.equals("null")) { |
| | | try { |
| | | // 解析 JSON 字符串为对象 |
| | | Object parsedGlassPoint = mapper.readValue(glassPointStr, Object.class); |
| | | detail.put("glassPoint", parsedGlassPoint); |
| | | } catch (Exception e) { |
| | | System.err.println("解析 glassPoint 失败: " + e.getMessage()); |
| | | // 解析失败时保留原字符串或设置默认值 |
| | | detail.put("glassPoint", new ArrayList<>()); |
| | | } |
| | | } else { |
| | | // 空字符串或 null 时设置默认值 |
| | | detail.put("glassPoint", new ArrayList<>()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 按照stockId将明细分组并添加到对应的布局中 |
| | | if (layouts != null && !layouts.isEmpty()) { |
| | | for (Map<String, Object> layout : layouts) { |