| | |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.awt.*; |
| | | import java.time.LocalDate; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | } |
| | | |
| | | public Map<String, Object> getSelectPrintCustomLabelDetailsSv(String type, Integer lableType, Map<String, Object> object) { |
| | | String landingSequence = ""; |
| | | if (object.get("landingSequence") != null) { |
| | | landingSequence = object.get("landingSequence").toString(); |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果 |
| | | List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (!"1".equals(landingSequence)) { |
| | | // 构造一个先按短边、再按长边的比较器 |
| | | Comparator<Map<String,Object>> comparator = Comparator |
| | | .comparingDouble((Map<String,Object> m) -> { |
| | | Map<String,Object> first = ((List<Map<String,Object>>)m.get("data")).get(0); |
| | | double w = ((Number) first.get("width")).doubleValue(); |
| | | double h = ((Number) first.get("height")).doubleValue(); |
| | | return Math.min(w, h); |
| | | }) |
| | | .thenComparingDouble(m -> { |
| | | Map<String,Object> first = ((List<Map<String,Object>>)m.get("data")).get(0); |
| | | double w = ((Number) first.get("width")).doubleValue(); |
| | | double h = ((Number) first.get("height")).doubleValue(); |
| | | return Math.max(w, h); |
| | | }); |
| | | |
| | | // 对整个 list 排序,并整体反转,短边大→前,短边相同时长边大→前 |
| | | list.sort(comparator.reversed()); |
| | | } |
| | | map.put("data", list); |
| | | map.put("title", flowCardMapper.getPrintTitle(type)); |
| | | return map; |