diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java index 6db61c175e7fc351b318dbbc89fbb984cbcd3f3f..ccfe0068f21853ee9c5496e682edfab33bba5895 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java @@ -2158,6 +2158,8 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { JSONObject js = JSON.parseObject(detailListJson); detailArray.add(js); } + //瀵归鏈虹エ鍒嗚В鏄庣粏 + detailArray = DetailArrayUtil.split(detailArray, "fpFlights"); //todo 鍏堝detailList 寰幆锛屽啀鍖归厤detailMap for (int i = 0; i < detailArray.size(); i++) { JSONObject detailObject = detailArray.getJSONObject(i); diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/utils/DetailArrayUtil.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/utils/DetailArrayUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..da6ddefa5c19f411f009dab3e498fcf93906c03f --- /dev/null +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/utils/DetailArrayUtil.java @@ -0,0 +1,38 @@ +package com.seasky.seaskyocr.application.command.utils; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +/** + * @author zhuxiang + * @since 2023-10-16 + */ +public class DetailArrayUtil { + public static JSONArray split(JSONArray detailArray, String fpFlights) { + JSONArray result = new JSONArray(); + for (int i = 0; i < detailArray.size(); i++) { + JSONObject jsonObject = detailArray.getJSONObject(i); + if (jsonObject.containsKey(fpFlights)) { + try { + JSONArray items = jsonObject.getJSONArray(fpFlights); + for (int j = 0; j < items.size(); j++) { + JSONObject result0 = JSONObject.parseObject(jsonObject.toJSONString()); + JSONArray splitedDetails = new JSONArray(); + splitedDetails.add(items.get(j)); + if (j >= 1 && "fpFlights".equals(fpFlights)) { + result0.put("fpAmount", "0.00"); + } + result0.put(fpFlights, splitedDetails); + result.add(result0); + } + } catch (Exception ex) { + ex.printStackTrace(); + result.add(jsonObject); + } + } else { + result.add(jsonObject); + } + } + return result; + } +}