package com.zy.asrs.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Arith; import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.asrs.entity.BasCrnp; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.BasCrnpService; import com.zy.asrs.service.WrkMastService; import com.zy.common.utils.RedisUtil; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.CrnModeType; import com.zy.core.enums.RedisKeyType; import com.zy.core.enums.SlaveType; import com.zy.core.model.protocol.CrnProtocol; import com.zy.core.thread.CrnThread; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Arrays; import java.util.Comparator; import java.util.HashSet; import java.util.Set; public class Utils { private static final String LOC_NO_FLAG = "-"; private static final DecimalFormat fmt = new DecimalFormat("##0.00"); public static float scale(Float f){ if (f == null || f == 0f || Float.isNaN(f)) { return 0f; } return (float) Arith.multiplys(2, f, 1); } public static String zerofill(String msg, Integer count){ if (msg.length() == count){ return msg; } else if (msg.length() > count){ return msg.substring(0, 16); } else { StringBuilder msgBuilder = new StringBuilder(msg); for (int i = 0; i systemConfigMap = (HashMap) object; String deviceLogCollectTime = systemConfigMap.get("deviceLogCollectTime"); if(deviceLogCollectTime == null){ return defaultTime; } return Integer.parseInt(deviceLogCollectTime); }catch (Exception e){ e.printStackTrace(); } return defaultTime; } //获取入库任务可用排 public static List getInTaskEnableRow() { List list = new ArrayList<>(); try { RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class); WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class); BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class); Integer currentCircleTaskCrnNo = null; Object object = redisUtil.get(RedisKeyType.CURRENT_CIRCLE_TASK_CRN_NO.key); if (object != null) { currentCircleTaskCrnNo = Integer.parseInt(String.valueOf(object)); } Wrapper wrapper = new EntityWrapper() .eq("in_enable", "Y") .eq("status", 1); if (currentCircleTaskCrnNo != null) { currentCircleTaskCrnNo = currentCircleTaskCrnNo + 1; BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper().eq("crn_no", currentCircleTaskCrnNo)); List currentCrnTask = wrkMastService.selectList(new EntityWrapper().eq("crn_no", currentCircleTaskCrnNo)); if (currentCrnTask.size() <= 1) { if (basCrnp != null) { String controlRowsStr = basCrnp.getControlRows(); if(!Cools.isEmpty(controlRowsStr)){ List rows = JSON.parseArray(controlRowsStr, Integer.class); list.addAll(rows); wrapper.ne("crn_no", currentCircleTaskCrnNo); } } } } HashMap map = new HashMap<>(); List wrkMasts = wrkMastService.selectList(new EntityWrapper<>()); List basCrnps = basCrnpService.selectList(wrapper); for (WrkMast wrkMast : wrkMasts) { Integer crnNo = wrkMast.getCrnNo(); map.put(crnNo, map.getOrDefault(crnNo, 0) + 1); } List enabledCrnps = new ArrayList<>(); for (BasCrnp basCrnp : basCrnps) { CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo()); if (crnThread == null) { continue; } CrnProtocol crnProtocol = crnThread.getStatus(); if (crnProtocol.getMode() != CrnModeType.AUTO.id) { continue; } enabledCrnps.add(basCrnp); } enabledCrnps.sort(Comparator.comparingInt(o -> map.getOrDefault(o.getCrnNo(), 0))); for (BasCrnp basCrnp : enabledCrnps) { String controlRowsStr = basCrnp.getControlRows(); if (Cools.isEmpty(controlRowsStr)) { continue; } List rows = JSON.parseArray(controlRowsStr, Integer.class); list.addAll(rows); } }catch (Exception e){ e.printStackTrace(); } return list; } }