ZengTao
2024-10-21 09c9c55d62cdcc6db5e99ee238ae0e78d082ee1a
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -116,6 +116,7 @@
//        }
//        return true;
//    }
    /**
     * 获取 切割当前版图
     *
@@ -124,22 +125,22 @@
    @Override
    public List<Map<String, Object>> selectCutTerritory() {
        //查询EdgStorageCageDetails最后一张玻璃所属版图
        List<UpPattenUsage> upPattenUsage=upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
        List<UpPattenUsage> upPattenUsage = upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
                .selectAll(UpPattenUsage.class)
                .distinct()
                .innerJoin(Engineering.class, on -> on
                        .eq(Engineering::getEngineerId, UpPattenUsage::getEngineeringId))
                .innerJoin(GlassInfo.class, on -> on
                        .eq(GlassInfo::getEngineerId, UpPattenUsage::getEngineeringId)
                        .eq(GlassInfo::getPatternSequence,UpPattenUsage::getLayoutSequence))
                        .eq(GlassInfo::getPatternSequence, UpPattenUsage::getLayoutSequence))
                .leftJoin(EdgStorageCageDetails.class, on -> on
                        .eq(EdgStorageCageDetails::getEngineerId, UpPattenUsage::getEngineeringId)
                        .eq(EdgStorageCageDetails::getGlassId,GlassInfo::getGlassId))
                        .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId))
                .leftJoin(Damage.class, on -> on
                        .eq(Damage::getEngineerId, UpPattenUsage::getEngineeringId)
                        .eq(Damage::getGlassId,GlassInfo::getGlassId))
                .eq(Engineering::getState,1)
                .and(wrapper->wrapper.isNotNull(EdgStorageCageDetails::getId).or().isNotNull(Damage::getId))
                        .eq(Damage::getGlassId, GlassInfo::getGlassId))
                .eq(Engineering::getState, 1)
                .and(wrapper -> wrapper.isNotNull(EdgStorageCageDetails::getId).or().isNotNull(Damage::getId))
                .orderByDesc(UpPattenUsage::getLayoutSequence)
                .orderByDesc(GlassInfo::getId)
        );
@@ -147,43 +148,43 @@
            //当前版
            UpPattenUsage upPattenUsage1 = upPattenUsage.get(0);
            //查看当前版是否存在未进笼子或破损的玻璃
            List<UpPattenUsage> upPattenUsage2=upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
            List<UpPattenUsage> upPattenUsage2 = upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
                    .selectAll(UpPattenUsage.class)
                    .distinct()
                    .innerJoin(GlassInfo.class, on -> on
                            .eq(GlassInfo::getEngineerId, UpPattenUsage::getEngineeringId)
                            .eq(GlassInfo::getPatternSequence,UpPattenUsage::getLayoutSequence))
                            .eq(GlassInfo::getPatternSequence, UpPattenUsage::getLayoutSequence))
                    .leftJoin(EdgStorageCageDetails.class, on -> on
                            .eq(EdgStorageCageDetails::getEngineerId, UpPattenUsage::getEngineeringId)
                            .eq(EdgStorageCageDetails::getGlassId,GlassInfo::getGlassId))
                            .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId))
                    .leftJoin(Damage.class, on -> on
                            .eq(Damage::getEngineerId, UpPattenUsage::getEngineeringId)
                            .eq(Damage::getGlassId,GlassInfo::getGlassId))
                    .eq(UpPattenUsage::getEngineeringId,upPattenUsage.get(0).getEngineeringId())
                    .eq(UpPattenUsage::getLayoutSequence,upPattenUsage.get(0).getLayoutSequence())
                    .and(wrapper->wrapper.isNull(EdgStorageCageDetails::getId).or().isNull(Damage::getId))
                            .eq(Damage::getGlassId, GlassInfo::getGlassId))
                    .eq(UpPattenUsage::getEngineeringId, upPattenUsage.get(0).getEngineeringId())
                    .eq(UpPattenUsage::getLayoutSequence, upPattenUsage.get(0).getLayoutSequence())
                    .and(wrapper -> wrapper.isNull(EdgStorageCageDetails::getId).or().isNull(Damage::getId))
                    .orderByDesc(UpPattenUsage::getLayoutSequence)
                    .orderByDesc(GlassInfo::getId)
            );
            //显示下一版  否则显示当前版图
            if(upPattenUsage2.isEmpty()){
            if (upPattenUsage2.isEmpty()) {
                //剩余版图
                List<UpPattenUsage> upPattenUsage3=upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
                List<UpPattenUsage> upPattenUsage3 = upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
                        .selectAll(UpPattenUsage.class)
                        .distinct()
                        .innerJoin(Engineering.class, on -> on
                                .eq(Engineering::getEngineerId, UpPattenUsage::getEngineeringId))
                        .eq(Engineering::getState,1)
                        .gt(UpPattenUsage::getLayoutSequence,upPattenUsage1.getLayoutSequence())
                        .eq(Engineering::getState, 1)
                        .gt(UpPattenUsage::getLayoutSequence, upPattenUsage1.getLayoutSequence())
                        .orderByAsc(UpPattenUsage::getLayoutSequence)
                );
                if(!upPattenUsage3.isEmpty()){
                if (!upPattenUsage3.isEmpty()) {
                    //切换成下一版图
                    upPattenUsage1=upPattenUsage3.get(0);
                    upPattenUsage1 = upPattenUsage3.get(0);
                }
            }
            List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
            List<Map<String, Object>> cutTerritorys = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                    .selectAll(OptimizeDetail.class)
                    .selectAs(OptimizeLayout::getWidth, "olWidth")
                    .selectAs(OptimizeLayout::getHeight, "olHeight")
@@ -193,32 +194,32 @@
                    .eq(OptimizeDetail::getProjectNo, upPattenUsage1.getEngineeringId())
                    .eq(OptimizeDetail::getStockId, upPattenUsage1.getLayoutSequence())
            );
            Map<String, EdgStorageCageDetails> edgMaps=baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
            Map<String, EdgStorageCageDetails> edgMaps = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
                    .selectAll(EdgStorageCageDetails.class)
                    .eq(EdgStorageCageDetails::getEngineerId,upPattenUsage1.getEngineeringId())
            ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails->EdgStorageCageDetails));
                    .eq(EdgStorageCageDetails::getEngineerId, upPattenUsage1.getEngineeringId())
            ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails -> EdgStorageCageDetails));
            Map<String, Damage> damageMaps=damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
            Map<String, Damage> damageMaps = damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
                    .selectAll(Damage.class)
                    .eq(Damage::getEngineerId,upPattenUsage1.getEngineeringId())
                    .and(wrapper->wrapper.eq(Damage::getType,8)
                    .eq(Damage::getEngineerId, upPattenUsage1.getEngineeringId())
                    .and(wrapper -> wrapper.eq(Damage::getType, 8)
                            .or()
                            .eq(Damage::getType,9))
            ).stream().collect(Collectors.toMap(Damage::getGlassId,Damage->Damage,(V1,V2)->V2));
                            .eq(Damage::getType, 9))
            ).stream().collect(Collectors.toMap(Damage::getGlassId, Damage -> Damage, (V1, V2) -> V2));
            List<Map<String, Object>> resultCutTerritory=new ArrayList<>();
            List<Map<String, Object>> resultCutTerritory = new ArrayList<>();
            for (Map<String, Object> cutTerritory : cutTerritorys) {
//                log.info("内容:{}-------{}",cutTerritory,edgStorageCageDetails);
                if(cutTerritory.get("glass_id")==null||"".equals(cutTerritory.get("glass_id"))){
                    log.info("优化数据中glassId存在空值-----内容:{}",cutTerritorys);
                if (cutTerritory.get("glass_id") == null || "".equals(cutTerritory.get("glass_id"))) {
                    log.info("优化数据中glassId存在空值-----内容:{}", cutTerritorys);
                    return new ArrayList<>();
                }else if(damageMaps.get(cutTerritory.get("glass_id"))!=null){
                } else if (damageMaps.get(cutTerritory.get("glass_id")) != null) {
                    //log.info("玻璃已破损/拿走-----内容:{}",damageMaps.get(item.get("glass_id")));
                    cutTerritory.put("glass_state",damageMaps.get(cutTerritory.get("glass_id")).getType());
                }else if(edgMaps.get(cutTerritory.get("glass_id"))!=null){
                    cutTerritory.put("glass_state",edgMaps.get(cutTerritory.get("glass_id")).getState());
                }else{
                    cutTerritory.put("glass_state",0);
                    cutTerritory.put("glass_state", damageMaps.get(cutTerritory.get("glass_id")).getType());
                } else if (edgMaps.get(cutTerritory.get("glass_id")) != null) {
                    cutTerritory.put("glass_state", edgMaps.get(cutTerritory.get("glass_id")).getState());
                } else {
                    cutTerritory.put("glass_state", 0);
                }
                resultCutTerritory.add(cutTerritory);
            }
@@ -236,18 +237,18 @@
    @Override
    public List<List<Map<String, Object>>> selectCurrentCutTerritory(String current) {
        List<Engineering> engineering=engineeringMapper.selectJoinList(Engineering.class, new MPJLambdaWrapper<Engineering>()
        List<Engineering> engineering = engineeringMapper.selectJoinList(Engineering.class, new MPJLambdaWrapper<Engineering>()
                .selectAll(Engineering.class)
                .eq(Engineering::getEngineerId,current)
                .eq(Engineering::getEngineerId, current)
        );
        if(engineering.size()==0){
            log.info("当前工程号未领取过:{}",current);
        if (engineering.size() == 0) {
            log.info("当前工程号未领取过:{}", current);
            return new ArrayList<>();
        }
        //结果
        List<Map<String, Object>> resultCutTerritory=new ArrayList<>();
        List<Map<String, Object>> resultCutTerritory = new ArrayList<>();
        //此工程的所有优化数据
        List<Map<String, Object>> cutTerritory=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
        List<Map<String, Object>> cutTerritory = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                .selectAll(OptimizeDetail.class)
                .selectAs(OptimizeLayout::getWidth, "olWidth")
                .selectAs(OptimizeLayout::getHeight, "olHeight")
@@ -257,42 +258,42 @@
                .eq(OptimizeDetail::getProjectNo, current)
        );
        Map<String, EdgStorageCageDetails> edgMaps=baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
        Map<String, EdgStorageCageDetails> edgMaps = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
                .selectAll(EdgStorageCageDetails.class)
                .eq(EdgStorageCageDetails::getEngineerId,current)
        ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails->EdgStorageCageDetails,(V1,V2)->V2));
                .eq(EdgStorageCageDetails::getEngineerId, current)
        ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails -> EdgStorageCageDetails, (V1, V2) -> V2));
        Map<String, Damage> damageMaps=damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
        Map<String, Damage> damageMaps = damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
                .selectAll(Damage.class)
                .eq(Damage::getEngineerId,current)
                .and(wrapper->wrapper.eq(Damage::getType,8)
                .eq(Damage::getEngineerId, current)
                .and(wrapper -> wrapper.eq(Damage::getType, 8)
                        .or()
                        .eq(Damage::getType,9))
        ).stream().collect(Collectors.toMap(Damage::getGlassId,Damage->Damage,(V1,V2)->V2));
                        .eq(Damage::getType, 9))
        ).stream().collect(Collectors.toMap(Damage::getGlassId, Damage -> Damage, (V1, V2) -> V2));
        for (Map<String, Object> item : cutTerritory) {
//          log.info("内容:{}-------{}",cutTerritory,edgStorageCageDetails);
            if(item.get("glass_id")==null||"".equals(item.get("glass_id"))){
                log.info("优化数据中glassId存在空值-----内容:{}",cutTerritory);
            if (item.get("glass_id") == null || "".equals(item.get("glass_id"))) {
                log.info("优化数据中glassId存在空值-----内容:{}", cutTerritory);
                return new ArrayList<>();
            }
            if(damageMaps.get(item.get("glass_id"))!=null){
            if (damageMaps.get(item.get("glass_id")) != null) {
                //log.info("玻璃已破损/拿走-----内容:{}",damageMaps.get(item.get("glass_id")));
                item.put("glass_state",damageMaps.get(item.get("glass_id")).getType());
            }else if(edgMaps.get(item.get("glass_id"))!=null){
                item.put("glass_state",edgMaps.get(item.get("glass_id")).getState());
            }else{
                item.put("glass_state",0);
                item.put("glass_state", damageMaps.get(item.get("glass_id")).getType());
            } else if (edgMaps.get(item.get("glass_id")) != null) {
                item.put("glass_state", edgMaps.get(item.get("glass_id")).getState());
            } else {
                item.put("glass_state", 0);
            }
            resultCutTerritory.add(item);
        }
        Map<String, List<Map<String, Object>>> groupBy=resultCutTerritory.stream().collect(Collectors.groupingBy(item->item.get("stock_id").toString()));
        Map<String, List<Map<String, Object>>> groupBy = resultCutTerritory.stream().collect(Collectors.groupingBy(item -> item.get("stock_id").toString()));
//        List<List<Map<String, Object>>> Result=groupBy.values().stream().collect(Collectors.toList());
        int count=1;
        List<List<Map<String, Object>>> result=new ArrayList<>();
        int count = 1;
        List<List<Map<String, Object>>> result = new ArrayList<>();
        for (String item : groupBy.keySet()) {
            String key=count+"";
            if(key!=null){
            String key = count + "";
            if (key != null) {
                result.add(groupBy.get(key));
            }
            count++;
@@ -309,7 +310,7 @@
    @Override
    public List<List<Map<String, Object>>> selectTemperingTerritory(String current) {
        //此工程的所有优化数据
        List<Map<String, Object>> resultCutTerritory=optimizeHeatDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeHeatDetail.class)
        List<Map<String, Object>> resultCutTerritory = optimizeHeatDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeHeatDetail.class)
                .selectAll(OptimizeHeatDetail.class)
                .selectAs(OptimizeProject::getLoadWidth, "olWidth")
                .selectAs(OptimizeProject::getLoadLength, "olHeight")
@@ -319,14 +320,15 @@
                .leftJoin(OptimizeProject.class, on -> on
                        .eq(OptimizeProject::getProjectNo, OptimizeHeatLayout::getProjectNo))
                .eq(OptimizeHeatDetail::getProjectNo, current)
                .gt(OptimizeHeatDetail::getLayoutId, 0)
        );
        Map<String, List<Map<String, Object>>> groupBy=resultCutTerritory.stream().collect(Collectors.groupingBy(item->item.get("layout_id").toString()));
        Map<String, List<Map<String, Object>>> groupBy = resultCutTerritory.stream().collect(Collectors.groupingBy(item -> item.get("layout_id").toString()));
//        List<List<Map<String, Object>>> Result=groupBy.values().stream().collect(Collectors.toList());
        List<List<Map<String, Object>>> result=new ArrayList<>();
        for (int i=1;i<=groupBy.keySet().size();i++) {
            String key=i+"";
            if(key!=null){
        List<List<Map<String, Object>>> result = new ArrayList<>();
        for (int i = 1; i <= groupBy.keySet().size(); i++) {
            String key = i + "";
            if (key != null) {
                result.add(groupBy.get(key));
            }
        }
@@ -474,19 +476,19 @@
     * @return
     */
    @Override
    public boolean inToVerify(String glassId){
    public boolean inToVerify(String glassId) {
        List<EdgStorageCageDetails> listEdgStorageCageDetails = baseMapper.selectList(new LambdaQueryWrapper<EdgStorageCageDetails>()
                .eq(EdgStorageCageDetails::getGlassId, glassId)
        );
        if (listEdgStorageCageDetails.isEmpty()) {
            //说明此玻璃没有进过理片
            return true;
        }else{
            List<Damage> damage=damageMapper.selectList(new LambdaQueryWrapper<Damage>()
        } else {
            List<Damage> damage = damageMapper.selectList(new LambdaQueryWrapper<Damage>()
                    .eq(Damage::getGlassId, glassId)
                    .and(wrapper->wrapper.eq(Damage::getType, 8).or().eq(Damage::getType, 9))
                    .and(wrapper -> wrapper.eq(Damage::getType, 8).or().eq(Damage::getType, 9))
            );
            if(!damage.isEmpty()){
            if (!damage.isEmpty()) {
                return true;
            }
        }