diff --git a/src/main/java/com/yem/or/api/AssepcDynamic.java b/src/main/java/com/yem/or/api/AssepcDynamic.java index b7a85a30..dfa56971 100644 --- a/src/main/java/com/yem/or/api/AssepcDynamic.java +++ b/src/main/java/com/yem/or/api/AssepcDynamic.java @@ -549,62 +549,60 @@ public class AssepcDynamic { JSONArray jsonArray = new JSONArray(); QFilter qFilter = new QFilter("yem_productclass.number", QCP.equals, modnumber + "PJ").and(new QFilter("yem_accessory.yem_material.number", QCP.equals, material)); qFilter.or(new QFilter("yem_productclass.number", QCP.equals, modnumber + "PJ").and(new QFilter("yem_accessory.yem_material.name", QCP.like, "%" + material + "%"))); -// QFilter qFilter = new QFilter("yem_productclass.number", QCP.equals, modnumber + "PJ").and(new QFilter("yem_accessory.yem_material.name", QCP.like, "%" + material + "%")); String selectfield = DynamicObjectUtil.getSelectfields("yem_pricelibrary", false); String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_pricelibrary", "yem_accessory", false); DynamicObject[] loaded = BusinessDataServiceHelper.load("yem_pricelibrary", selectfields, qFilter.toArray(), "auditdate desc"); JSONObject object = new JSONObject(); -// Map map = new HashMap<>(); - List stringList = new ArrayList<>(); - int i = 0; - if (loaded.length > 0) { - for (DynamicObject dynamicObject : loaded) { -// Date yemBizdate = dynamicObject.getDate("auditdate"); - DynamicObjectCollection dynamicObjectCollection = dynamicObject.getDynamicObjectCollection("yem_accessory"); - if (dynamicObjectCollection.size() > 0) { - for (DynamicObject collection : dynamicObjectCollection) { - DynamicObject yemMaterial = collection.getDynamicObject("yem_material"); -// if (yemMaterial != null) { -// String yemMaterialString = yemMaterial.getString("number"); -// if (map.get(yemMaterialString) == null) { -// map.put(yemMaterialString, yemBizdate); -// JSONObject jsonObject = new JSONObject(); -// int i1 = number * (page - 1); -// int i2 = number * page; -// stringList.add(yemMaterialString); -// String string = ""; -// for (String s : stringList) { -// if (s.equals(material)) { -// string = s; -// } -// } -// if (string.equals(yemMaterialString)) { -// -// } -//// jsonObjectS.put("total", i);//总数 -// } -// } - if (material.equals(yemMaterial.getString("number")) || yemMaterial.getString("name").contains(material)) { - JSONObject jsonObject = new JSONObject(); - int i1 = number * (page - 1); - int i2 = number * page; - if (i >= i1 && i < i2) { - jsonObject.put("material", collection.getString("yem_material.number")); - jsonObject.put("materialename", collection.getString("yem_materialename")); - jsonObject.put("markup", collection.getString("yem_markup")); - jsonObject.put("standsalesprice", collection.getBigDecimal("yem_standsalesprice")); - jsonObject.put("remark_a", collection.getString("yem_remark_a")); - jsonObject.put("easentryid", collection.getString("yem_easentryid")); - jsonArray.add(jsonObject); - } - i++; - } + int i = 0; + + Map> map = new HashMap<>(); + for (DynamicObject d : loaded) { + Date auditdate = d.getDate("auditdate"); + DynamicObjectCollection entry = d.getDynamicObjectCollection("yem_accessory"); + for (DynamicObject entryObj : entry) { + DynamicObject entry_material = entryObj.getDynamicObject("yem_material"); + String material_number = entry_material.getString("number"); + if (map.containsKey(material_number)) { + Map exist = map.get(material_number); + Iterator iterator = exist.keySet().iterator(); + Date existDate = iterator.next(); + if (auditdate.after(existDate)) { + HashMap materialMap = new HashMap<>(); + materialMap.put(auditdate, entryObj); + map.put(material_number, materialMap); } + } else { + HashMap materialMap = new HashMap<>(); + materialMap.put(auditdate, entryObj); + map.put(material_number, materialMap); } } -// jsonArray.add(jsonObjectS); } + + for (Map.Entry> entrySet : map.entrySet()) { + for (Map.Entry subSet : entrySet.getValue().entrySet()) { + DynamicObject entryObj = subSet.getValue(); + DynamicObject yemMaterial = entryObj.getDynamicObject("yem_material"); + String materialNumber = yemMaterial.getString("number"); + if (material.equals(materialNumber) || yemMaterial.getString("name").contains(material)) { + JSONObject jsonObject = new JSONObject(); + int i1 = number * (page - 1); + int i2 = number * page; + if (i >= i1 && i < i2) { + jsonObject.put("material", entryObj.getString("yem_material.number")); + jsonObject.put("materialename", entryObj.getString("yem_materialename")); + jsonObject.put("markup", entryObj.getString("yem_markup")); + jsonObject.put("standsalesprice", entryObj.getBigDecimal("yem_standsalesprice")); + jsonObject.put("remark_a", entryObj.getString("yem_remark_a")); + jsonObject.put("easentryid", entryObj.getString("yem_easentryid")); + jsonArray.add(jsonObject); + } + i++; + } + } + } + int i3 = i / number + 1; if (i3 == page) { object.put("isLastPage", true); @@ -650,6 +648,7 @@ public class AssepcDynamic { /** * 查询客户购买过的资源 + * * @param customerNo * @return */