hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -21,16 +21,19 @@
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.job.DownLoadCacheGlassTask;
import com.mes.pp.service.FlowCardService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@Service
public class DownGlassInfoServiceImpl extends ServiceImpl<DownGlassInfoMapper, DownGlassInfo> implements DownGlassInfoService {
@@ -122,6 +125,7 @@
        }
        return "success";
    }
    @Override
    public List<DownWorkstation> queryWorkStationIsFull() {
        //查询可以落架的玻璃信息且已绑定流程卡的工位信息
@@ -145,40 +149,66 @@
            }
        }
        return workstationFull;
    }@Override
    public List<Map<String, List<Map<String, Object>>>> downGlassPrint(DownGlassInfo downGlassInfo){
    }
    @Override
    public List<Map<String, List<Map<String, Object>>>> downGlassPrint(DownGlassInfo downGlassInfo) {
        log.info("打印参数:{}", downGlassInfo);
        QueryWrapper<DownGlassInfo> queryWrapper = Wrappers.query();
        queryWrapper.eq("flow_card_id", "NG24080012A001")
                .eq("layer", 1)
                .select("flow_card_id", "layer", "width", "height", "filmsid", "thickness","glass_type","COUNT(*) AS quantity")
                .groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness");
        queryWrapper.eq("flow_card_id", downGlassInfo.getFlowCardId())
                .eq("layer", downGlassInfo.getLayer())
                .select("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity")
                .groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "id")
                .orderByAsc("id");
        List<Map<String, Object>> resultList = baseMapper.selectMaps(queryWrapper);
        log.info("MES落架数据:{}", resultList);
        List<Map<String, Object>> projectInfo=flowCardService.selectProject(downGlassInfo.getFlowCardId(),downGlassInfo.getLayer());
        List<Map<String, Object>> flowCardInfo=flowCardService.selectFlowCard(downGlassInfo.getFlowCardId(),downGlassInfo.getLayer());
        List<Map<String, Object>> projectInfo = flowCardService.selectProject(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
        log.info("流程卡头部数据:{}", projectInfo);
        List<Map<String, Object>> flowCardInfo = flowCardService.selectFlowCard(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
        log.info("流程卡玻璃数据:{}", flowCardInfo);
        for (Map<String, Object> row : flowCardInfo) {
            int order_number = (int) row.get("order_number");
            int technology_number = (int) row.get("technology_number");
            int quantity1 = 0;
            for (Map<String, Object> row1 : resultList) {
                int glass_type = (int) row1.get("glass_type");
                int layer = (int) row1.get("layer");
                Long quantity=(Long) row1.get("quantity");
                if(order_number==glass_type&&technology_number==layer){
                    row.put("quantity1",quantity);
//                String child_width = (String) row1.get("child_width");
//                Long quantity = (Long) row1.get("quantity");
//                BigDecimal total_area = (BigDecimal) row1.get("total_area");
//                String separation = (String) row1.get("separation");
//                String perimeter = (String) row1.get("perimeter");
//                BigDecimal width = (BigDecimal) row1.get("width");
//                String other_columns = (String) row1.get("other_columns");
//                String remarks = (String) row1.get("remarks");
//                BigDecimal height = (BigDecimal) row1.get("height");
                if (order_number == glass_type && technology_number == layer) {
                    quantity1+=1;
//                    row.put("quantity", quantity);
//                    row.put("order_number", order_number);
//                    row.put("technology_number", technology_number);
//                    row.put("child_width", child_width);
//                    row.put("total_area", total_area);
//                    row.put("separation", separation);
//                    row.put("perimeter", perimeter);
//                    row.put("width", width);
//                    row.put("other_columns", other_columns);
//                    row.put("remarks", remarks);
//                    row.put("height", height);
                }
            }
            row.put("quantity1", quantity1);
        }
        List<Map<String, List<Map<String, Object>>>> listMap=new ArrayList<>();
        log.info("流程卡玻璃数据2:{}", flowCardInfo);
        List<Map<String, List<Map<String, Object>>>> listMap = new ArrayList<>();
        Map<String, List<Map<String, Object>>> result = new HashMap<>();
        result.put("detail", projectInfo);
        result.put("detailList", flowCardInfo);
        for (Map<String, Object> row : projectInfo) {
            String order_number = (String) row.get("process");
            String[] processes=order_number.split("->");
            String[] processes = order_number.split("->");
            List<Map<String, Object>> processList = new ArrayList<>();
            for (int i = 0; i < processes.length; i++) {
                Map<String, Object> processMap = new JSONObject();
@@ -191,4 +221,66 @@
        listMap.add(result);
        return listMap;
    }
    @Override
    public List<Map<String, Object>> downGlassLabelPrint(DownGlassInfo downGlassInfo) {
        //获取下片玻璃的顺序
//        QueryWrapper<DownGlassInfo> queryWrapper = Wrappers.query();
//        queryWrapper
//                .eq("flow_card_id", downGlassInfo.getFlowCardId())
//                .eq("layer", downGlassInfo.getLayer())
//                .select("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity")
//                .groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "id")
//                .orderByAsc("id");
//        List<Map<String, Object>> resultList = baseMapper.selectMaps(queryWrapper);
        List<Map<String, Object>> resultList = baseMapper.downGlassLabelPrint(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
        log.info("MES落架数据:{}", resultList);
        //获取ERP标签所需的信息
        List<Map<String, Object>> labelInfo = flowCardService.selectLabel(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
        log.info("标签数据:{}", labelInfo);
        for (Map<String, Object> row : resultList) {
            int glass_type = (int) row.get("glass_type");
            int layer = (int) row.get("layer");
            for (Map<String, Object> row1 : labelInfo) {
                int orderNumber = (int) row1.get("orderNumber");
                int technologyNumber = (int) row1.get("technologyNumber");
                if (orderNumber == glass_type && technologyNumber == layer) {
                    String order_id = (String) row1.get("order_id");
                    String project = (String) row1.get("project");
                    Long customer_id = (Long) row1.get("customer_id");
                    BigDecimal width = (BigDecimal) row1.get("width");
                    BigDecimal height = (BigDecimal) row1.get("height");
                    Long quantity = (Long) row1.get("quantity");
                    String glass_child = (String) row1.get("glass_child");
                    String process = (String) row1.get("process");
                    String customer_name = (String) row1.get("customer_name");
                    String processing_note = (String) row1.get("processing_note");
                    String other_colunmns = (String) row1.get("other_colunmns");
                    String building_number = (String) row1.get("building_number");
                    String bend_radius = (String) row1.get("bend_radius");
                    row.put("orderNumber", orderNumber);
                    row.put("technology_number", technologyNumber);
                    row.put("order_id", order_id);
                    row.put("project", project);
                    row.put("customer_id", customer_id);
                    row.put("width", width);
                    row.put("height", height);
                    row.put("quantity", quantity);
                    row.put("glass_child", glass_child);
                    row.put("process", process);
                    row.put("customer_name", customer_name);
                    row.put("processing_note", processing_note);
                    row.put("other_colunmns", other_colunmns);
                    row.put("building_number", building_number);
                    row.put("bend_radius", bend_radius);
                }
            }
        }
        return resultList;
    }
}