1、记录解决lisec中空出片同一车内的玻璃顺序错乱
2、将报工接口地址改为义乌服务器地址
2个文件已修改
65 ■■■■■ 已修改文件
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -55,8 +55,8 @@
    WorkAssignmentMapper workAssignmentMapper;
    //    private final static String ERP_URL = "http://192.168.2.100:8086";
    private final static String ERP_URL = "http://10.153.19.174:8086";
    private final static String ERP_URL = "http://192.168.2.100:8086";
//    private final static String ERP_URL = "http://10.153.19.174:8086";
    /**
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -785,52 +785,70 @@
     */
    private <T extends HollowBigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, String tableName, int targetSlot, int state, int taskType, int totalLayer, int isForce) {
        //任务数据:获取车子存放玻璃最大数量,玻璃间隔
        List<BigStorageCageTask> tempList = new ArrayList<>();
        List<T> tempTList = new ArrayList<>();
        List<T> templist = new ArrayList<>();
        //打车剩余尺寸
        Integer remainWidth = carWidth;
        for (T e : list) {
            if (tempList.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
            if (templist.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
                break;
            }
            //计算当前出片车剩尺寸
            remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
            tempTList.add(e);
            tempList.add(new BigStorageCageTask(e.getGlassId(), e.getSlot(), targetSlot,
                    0));
            templist.add(e);
        }
        Assert.isFalse(CollectionUtil.isEmpty(tempList), "未获取出片数据,结束出片任务");
        log.info("获取出片任务数据{}条,执行保存", tempList.size());
        List<BigStorageCageTask> bigStorageCageTaskList = tempList;
        Assert.isFalse(CollectionUtil.isEmpty(templist), "未获取出片数据,结束出片任务");
        log.info("获取出片任务数据{}条,执行保存", templist.size());
        List<T> baseInfoList = new ArrayList<>();
        if (1 != isForce) {
            if (taskType == Const.BIG_STORAGE_AFTER_OUT) {
                if (tempList.size() <= totalLayer) {
                    int tempSequence = list.get(0).getHollowSequence();
                    List<BigStorageCageTask> resultList = new ArrayList<>();
                    for (int i = 0; i < tempList.size(); i++) {
                //校验防止小于等于总层数玻璃片序不匹配的问题,该问题多出现在大片玻璃,3层
                if (templist.size() <= totalLayer) {
                    int tempSequence = templist.get(0).getHollowSequence();
                    List<T> resultList = new ArrayList<>();
                    for (int i = 0; i < templist.size(); i++) {
                        if (tempSequence == list.get(i).getHollowSequence()) {
                            resultList.add(tempList.get(i));
                            resultList.add(templist.get(i));
                        } else {
                            break;
                        }
                    }
                    bigStorageCageTaskList = resultList;
                    baseInfoList = resultList;
                } else {
                    int remainCount = tempList.size() % totalLayer;
                    bigStorageCageTaskList = tempList.subList(0, tempList.size() - remainCount);
                    //大于总层数先取totalLyaer倍数数量的玻璃,保证大车上的玻璃成对传
                    int remainCount = templist.size() % totalLayer;
                    if (targetSlot == 931) {
                        baseInfoList = templist.subList(0, templist.size() - remainCount);
                    } else {
                        //930时玻璃顺序倒序、同一对玻璃倒序
                        baseInfoList = templist.subList(0, templist.size() - remainCount);
                        Map<Integer, List<T>> listMap = baseInfoList.stream().collect(Collectors.groupingBy(T::getHollowSequence));
                        Map<Integer, List<T>> sortListMap = new TreeMap<>(Collections.reverseOrder());
                        sortListMap.putAll(listMap);
                        List<T> resultList = new ArrayList<>();
                        for (Map.Entry<Integer, List<T>> e : sortListMap.entrySet()) {
                            for (T t : e.getValue()) {
                                resultList.add(t);
                            }
                        }
                        baseInfoList = resultList;
                    }
                }
            }
        }
        List<String> glassIds = bigStorageCageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
        int glassCount = bigStorageCageTaskList.size();
        List<String> glassIds = baseInfoList.stream().map(T::getGlassId).collect(Collectors.toList());
        int glassCount = baseInfoList.size();
        List<BigStorageCageTask> bigStorageCageTaskList = new ArrayList<>();
        //生成出片任务条数不足6补全
        while (bigStorageCageTaskList.size() < 6) {
        for (T t : baseInfoList) {
            bigStorageCageTaskList.add(new BigStorageCageTask(t.getGlassId(), t.getSlot(), targetSlot, 0));
        }
        while (baseInfoList.size() < 6) {
            bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
        }
        //清空任务表数据
        bigStorageCageTaskService.removeAll(tableName);
        bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList);
        List<HollowBigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
        List<HollowBigStorageCageHistoryTask> historyList = baseInfoList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
            HollowBigStorageCageHistoryTask history = new HollowBigStorageCageHistoryTask();
            BeanUtils.copyProperties(e, history);
            history.setGlassCount(glassCount);
@@ -838,7 +856,6 @@
            return history;
        }).collect(Collectors.toList());
        hollowBigStorageCageHistoryTaskService.saveBatch(historyList);
        log.info("将出片玻璃{}玻璃状态改为出片中", glassIds);
        hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
                .set(HollowBigStorageCageDetails::getState, state)