wu
2024-08-06 6f88e39b13f09decfdac0d31887a4e7c34629fc6
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -15,6 +15,8 @@
import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.mapper.GlassInfoMapper;
import com.mes.pp.entity.OptimizeDetail;
import com.mes.pp.entity.OptimizeLayout;
import com.mes.pp.mapper.OptimizeDetailMapper;
@@ -29,6 +31,7 @@
import javax.print.attribute.standard.MediaSize;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -53,6 +56,8 @@
    @Autowired
    EdgStorageCageMapper edgStorageCageMapper;
    @Autowired
    GlassInfoMapper glassInfoMapper;
    @Autowired
    TaskCacheService taskCacheService;
@@ -77,12 +82,20 @@
            log.info("前端传递数据不全:{}",arguments);
            return false;
        }
        int state=controlsId==200?3:2;
        int state;
        if(controlsId==200||controlsId==201){
            state=controlsId==200?3:2;
        }else if (controlsId==300||controlsId==301){
            state=controlsId==300?3:2;
        }else{
            log.info("前端传递状态不合法:{}",arguments);
            return false;
        }
        List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class).eq(EdgStorageCageDetails::getGlassId, glassId));
        if (edgStorageCageDetails.size() == 1) {
            EdgStorageCageDetails item = edgStorageCageDetails.get(0);
            item.setState(controlsId);
        List<GlassInfo> GlassInfos = glassInfoMapper.selectList(new MPJLambdaQueryWrapper<GlassInfo>()
                .selectAll(GlassInfo.class)
                .eq(GlassInfo::getGlassId, glassId));
        if (GlassInfos.size() == 1) {
            Damage damage =new Damage();
            damage.setGlassId(glassId);
            damage.setLine(line);
@@ -90,9 +103,18 @@
            damage.setRemark("");
            damage.setStatus(state);//201破损,200拿走   =》破损表 2破损  3 拿走
            damageService.insertDamage(damage);
            baseMapper.update(item, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class).eq(EdgStorageCageDetails::getGlassId, glassId));
            return true;
        }else{
            return false;
        }
        List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
                .selectAll(EdgStorageCageDetails.class)
                .eq(EdgStorageCageDetails::getGlassId, glassId));
        if (edgStorageCageDetails.size() == 1) {
            EdgStorageCageDetails item = edgStorageCageDetails.get(0);
            item.setState(controlsId);
            baseMapper.update(item, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class).eq(EdgStorageCageDetails::getGlassId, glassId));
        }
//            Sql版本
//        List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new QueryWrapper<EdgStorageCageDetails>().eq("glass_id", glassId));
//        if (edgStorageCageDetails.size() == 1) {
@@ -101,7 +123,7 @@
//            baseMapper.update(edgStorageCageDetails.get(0), new QueryWrapper<EdgStorageCageDetails>().eq("glass_id", glassId));
//            return true;
//        }
        return false;
        return true;
    }
    /**
@@ -120,7 +142,7 @@
            List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                    .selectAll(OptimizeDetail.class)
                    .selectAs(OptimizeLayout::getWidth, "olWidth")
                    .selectAs(OptimizeLayout::getWidth, "olHeight")
                    .selectAs(OptimizeLayout::getHeight, "olHeight")
                    .leftJoin(OptimizeLayout.class, on -> on
                            .eq(OptimizeLayout::getProjectNo, OptimizeDetail::getProjectNo)
                            .eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
@@ -161,17 +183,40 @@
     * @return
     */
    @Override
    public List<Map<String, Object>> selectCurrentCutTerritory(String current) {
        return optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
    public List<List<Map<String, Object>>> selectCurrentCutTerritory(String current) {
        //结果
        List<Map<String, Object>> ResultcutTerritorys=new ArrayList<>();
        //此工程的所有优化数据
        List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                .selectAll(OptimizeDetail.class)
                .selectAs(OptimizeLayout::getWidth, "olWidth")
                .selectAs(OptimizeLayout::getWidth, "olHeight")
                .selectAs(OptimizeLayout::getHeight, "olHeight")
                .leftJoin(OptimizeLayout.class, on -> on
                        .eq(OptimizeLayout::getProjectNo, OptimizeDetail::getProjectNo)
                        .eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
                .eq(OptimizeDetail::getProjectNo, current)
        );
        Map<String, EdgStorageCageDetails> edgMaps=baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
                .selectAll(EdgStorageCageDetails.class)
                .eq(EdgStorageCageDetails::getEngineerId,current)
                .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
        ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails->EdgStorageCageDetails));
        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);
                return new ArrayList<>();
            }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);
            }
            ResultcutTerritorys.add(cutTerritory);
        }
        Map<String, List<Map<String, Object>>> groupBy=ResultcutTerritorys.stream().collect(Collectors.groupingBy(item->item.get("stock_id").toString()));
//        List<List<Map<String, Object>>> Result=groupBy.values().stream().collect(Collectors.toList());
        return new ArrayList<>(groupBy.values());
//Sql版本
//        return optimizeDetailMapper.selectJoinMaps(new MPJQueryWrapper<OptimizeDetail>().selectAll(OptimizeDetail.class)
//                .select("ol.width as olwidth","ol.height as olheight")