| | |
| | | package com.mes; |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.github.yulichang.toolkit.JoinWrappers; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import com.mes.bigstorage.entity.BigStorageCage; |
| | | import com.mes.bigstorage.entity.BigStorageCageDetails; |
| | | import com.mes.bigstorage.entity.dto.TemperingLayoutDTO; |
| | | import com.mes.bigstorage.service.BigStorageCageDetailsService; |
| | | import com.mes.bigstorage.service.BigStorageCageService; |
| | | import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; |
| | | import com.mes.bigstoragetask.entity.BigStorageCageOutTask; |
| | | import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper; |
| | | import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService; |
| | | import com.mes.common.config.Const; |
| | | import com.mes.damage.entity.Damage; |
| | | import com.mes.damage.service.DamageService; |
| | | import com.mes.edgglasstask.entity.EdgGlassTaskInfo; |
| | | import com.mes.edgglasstask.service.EdgGlassTaskInfoService; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.service.GlassInfoService; |
| | | import com.mes.job.PlcSlicecage; |
| | | import com.mes.job.PlcStorageCageTask; |
| | | import com.mes.pp.entity.ReportingWork; |
| | | import com.mes.pp.entity.ReportingWorkDetail; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import com.mes.temperingglass.service.TemperingGlassInfoService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | |
| | | import org.springframework.boot.test.context.SpringBootTest; |
| | | import org.springframework.test.context.junit4.SpringRunner; |
| | | |
| | | import java.util.Arrays; |
| | | import javax.annotation.Resource; |
| | | import java.io.BufferedReader; |
| | | import java.io.InputStreamReader; |
| | | import java.io.OutputStream; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @Author : zhoush |
| | |
| | | PlcStorageCageTask plcStorageCageTask; |
| | | @Autowired |
| | | BigStorageCageDetailsService bigStorageCageDetailsService; |
| | | @Autowired |
| | | DamageService damageService; |
| | | @Autowired |
| | | EdgGlassTaskInfoService edgGlassTaskInfoService; |
| | | @Autowired |
| | | BigStorageCageFeedTaskService bigStorageCageFeedTaskService; |
| | | @Autowired |
| | | GlassInfoService glassInfoService; |
| | | |
| | | |
| | | // @Autowired |
| | | // BigStorageCageFeedTaskMapper bigStorageCageFeedTaskMapper; |
| | | |
| | | @Test |
| | | public void testInsertSlot() { |
| | | List<BigStorageCage> list = new ArrayList(); |
| | | for (int j = 1; j <= 5; j++) { |
| | | for (int i = 1 + (55 * (j - 1)); i <= 55 * j; i++) { |
| | | BigStorageCage cage = new BigStorageCage(); |
| | | cage.setDeviceId(j); |
| | | cage.setSlot(i); |
| | | cage.setMinThickness(4); |
| | | cage.setMaxThickness(6); |
| | | cage.setEnableState(1); |
| | | cage.setRemainWidth(5000); |
| | | list.add(cage); |
| | | } |
| | | } |
| | | for (int i = 276; i <= 300; i++) { |
| | | BigStorageCage cage = new BigStorageCage(); |
| | | cage.setDeviceId(6); |
| | | cage.setSlot(i); |
| | | cage.setMinThickness(8); |
| | | cage.setMaxThickness(12); |
| | | cage.setEnableState(1); |
| | | cage.setRemainWidth(5000); |
| | | list.add(cage); |
| | | } |
| | | for (int i = 301; i <= 330; i++) { |
| | | BigStorageCage cage = new BigStorageCage(); |
| | | cage.setDeviceId(7); |
| | | cage.setSlot(i); |
| | | cage.setMinThickness(8); |
| | | cage.setMaxThickness(12); |
| | | cage.setEnableState(1); |
| | | cage.setRemainWidth(5000); |
| | | list.add(cage); |
| | | } |
| | | for (int i = 331; i <= 355; i++) { |
| | | BigStorageCage cage = new BigStorageCage(); |
| | | cage.setDeviceId(8); |
| | | cage.setSlot(i); |
| | | cage.setMinThickness(8); |
| | | cage.setMaxThickness(12); |
| | | cage.setEnableState(1); |
| | | cage.setRemainWidth(5000); |
| | | list.add(cage); |
| | | } |
| | | for (int i = 356; i <= 380; i++) { |
| | | BigStorageCage cage = new BigStorageCage(); |
| | | cage.setDeviceId(9); |
| | | cage.setSlot(i); |
| | | cage.setMinThickness(15); |
| | | cage.setMaxThickness(19); |
| | | cage.setEnableState(1); |
| | | cage.setRemainWidth(5000); |
| | | list.add(cage); |
| | | } |
| | | bigStorageCageService.saveBatch(list); |
| | | } |
| | | |
| | | @Test |
| | | public void testFindPath() { |
| | |
| | | log.info("获取大理片笼信息:{}", bigStorageCageDetailsService.selectBigStorageCageDetails("P24060403|3|6")); |
| | | } |
| | | |
| | | @Test |
| | | public void insertDamage() { |
| | | Damage damage = new Damage(); |
| | | damage.setGlassId("P24060403|3|6"); |
| | | damage.setLine(2001); |
| | | damage.setWorkingProcedure("冷加工"); |
| | | damage.setRemark(""); |
| | | damage.setStatus(2); |
| | | damageService.insertDamage(damage); |
| | | } |
| | | |
| | | @Test |
| | | public void updateOutGlassStateTask() { |
| | | plcStorageCageTask.updateOutGlassStateTask(); |
| | | } |
| | | |
| | | @Test |
| | | public void chaxun() { |
| | | List<EdgGlassTaskInfo> edgGlassTaskInfoList = edgGlassTaskInfoService.list(new QueryWrapper<EdgGlassTaskInfo>() |
| | | .select("Top 1 *") |
| | | .eq("glass_id", "P24072402|1|13") |
| | | ); |
| | | log.info("在尺寸表中获取玻璃信息{}", edgGlassTaskInfoList); |
| | | } |
| | | |
| | | @Test |
| | | public void deleteByGlassId() { |
| | | damageService.deleteByGlassId("P24081203|2|5"); |
| | | } |
| | | |
| | | @Test |
| | | public void testttt() { |
| | | List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(6, 1); |
| | | List<Integer> deviceUseds = deviceUsedList; |
| | | List<BigStorageCageDetails> engineerCount1 = bigStorageCageDetailsService.list( |
| | | new LambdaQueryWrapper<BigStorageCageDetails>() |
| | | .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE) |
| | | .select(BigStorageCageDetails::getEngineerId) |
| | | .groupBy(BigStorageCageDetails::getEngineerId) |
| | | .between(BigStorageCageDetails::getDeviceId, 1, 5) |
| | | ); |
| | | List<BigStorageCageDetails> engineerCount2 = bigStorageCageDetailsService.list( |
| | | new LambdaQueryWrapper<BigStorageCageDetails>() |
| | | .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE) |
| | | .select(BigStorageCageDetails::getEngineerId) |
| | | .groupBy(BigStorageCageDetails::getEngineerId) |
| | | .between(BigStorageCageDetails::getDeviceId, 6, 8) |
| | | ); |
| | | if (engineerCount1.size() > engineerCount2.size()) { |
| | | deviceUsedList.removeIf(device -> device < 6); |
| | | } else { |
| | | deviceUsedList.removeIf(device -> device > 5); |
| | | } |
| | | if (CollectionUtils.isEmpty(deviceUsedList)) { |
| | | deviceUsedList = deviceUseds; |
| | | } |
| | | log.info("zhi:{}", deviceUsedList); |
| | | } |
| | | |
| | | @Test |
| | | public void ca1() { |
| | | List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list( |
| | | new LambdaQueryWrapper<BigStorageCageFeedTask>() |
| | | .gt(BigStorageCageFeedTask::getTargetSlot, 0) |
| | | .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION) |
| | | .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) |
| | | ); |
| | | if (CollectionUtils.isEmpty(bigStorageCageFeedTasks)) { |
| | | log.info("zhi:" + bigStorageCageFeedTasks); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Test |
| | | public void ca11() { |
| | | plcStorageCageTask.queryAndChangeGlass("P24110503|17|4"); |
| | | } |
| | | |
| | | @Resource |
| | | TemperingGlassInfoService temperingGlassInfoService; |
| | | |
| | | @Test |
| | | public void computeOutMoreGlassInfo() { |
| | | List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>() |
| | | .selectAll(TemperingGlassInfo.class) |
| | | .leftJoin(BigStorageCageOutTask.class, BigStorageCageOutTask::getGlassId, TemperingGlassInfo::getGlassId) |
| | | .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW) |
| | | .isNull(BigStorageCageOutTask::getGlassId) |
| | | .orderByAsc(TemperingGlassInfo::getTemperingFeedSequence)); |
| | | plcStorageCageTask.computeOutMoreGlassInfo(temperingGlassInfoList, true, 1); |
| | | } |
| | | |
| | | @Test |
| | | public void ca111() { |
| | | // GlassInfo glassInfo=glassInfoService.getOne( |
| | | // new LambdaQueryWrapper<GlassInfo>() |
| | | // .eq(GlassInfo::getGlassId,"P24122901|38|9") |
| | | // ); |
| | | // bigStorageCageDetailsService.queryTargetSlotByTempering(glassInfo); |
| | | // List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsService.list( |
| | | // new LambdaQueryWrapper<BigStorageCageDetails>() |
| | | // .eq(BigStorageCageDetails::getState, 100) |
| | | // .in(BigStorageCageDetails::getGlassId, "P24122201|1|1", "P24122201|2|3") |
| | | // ); |
| | | // List<BigStorageCageDetails> overSizeGlass = bigStorageCageDetailsList.stream().filter( |
| | | // t -> Math.min(t.getWidth(), t.getHeight()) > 2500 |
| | | // ).collect(Collectors.toList()); |
| | | // log.info("sadfd" + overSizeGlass); |
| | | // List<String> glasss=new ArrayList<>(); |
| | | // glasss.add("P24122901|38|5"); |
| | | // glasss.add("P24122901|38|7"); |
| | | // glasss.add("P24122901|26|5"); |
| | | // plcStorageCageTask.computeTargetByLineCar(2001,glasss); |
| | | // bigStorageCageDetailsService.cancelOutTask(); |
| | | // bigStorageCageDetailsService.queryTargetSlotByTempering(glassInfo); |
| | | // List<String> glassIdsCar=new ArrayList<>(); |
| | | // glassIdsCar.add("P24120801|4|3"); |
| | | // List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list( |
| | | // new LambdaQueryWrapper<BigStorageCageFeedTask>() |
| | | // .in(BigStorageCageFeedTask::getGlassId, glassIdsCar) |
| | | // .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) |
| | | // .eq(BigStorageCageFeedTask::getTargetSlot, 0) |
| | | // ); |
| | | // if(CollectionUtils.isNotEmpty(bigStorageCageFeedTasks)){ |
| | | // log.info("获取到的进片任务信息{}", bigStorageCageFeedTasks); |
| | | // plcStorageCageTask.computeTargetByLineCar(bigStorageCageFeedTasks.get(0).getLine(), glassIdsCar); |
| | | // } |
| | | // plcStorageCageTask.queryAndChangeGlass("P24111102|1|6"); |
| | | // bigStorageCageDetailsService.selectFeedTask(); |
| | | plcStorageCageTask.computeSlot("P24122901|21|2"); |
| | | // plcStorageCageTask.computeSlot("P24121401|1|4"); |
| | | |
| | | // List<TemperingLayoutDTO> temperingOccupySlotList = bigStorageCageDetailsService.queryTemperingOccupySlot(); |
| | | // log.info("sd"+temperingOccupySlotList); |
| | | } |
| | | |
| | | @Test |
| | | public void ca() { |
| | | try { |
| | | // 目标系统的API URL |
| | | String url = "http://192.168.3.119:8086/reportingWork/mesSaveReportingWorkWorn"; |
| | | URL obj = new URL(url); |
| | | HttpURLConnection con = (HttpURLConnection) obj.openConnection(); |
| | | |
| | | // 设置请求方法和请求头 |
| | | con.setRequestMethod("POST"); |
| | | con.setRequestProperty("Content-Type", "application/json; utf-8"); |
| | | con.setRequestProperty("Accept", "application/json"); |
| | | con.setDoOutput(true); |
| | | |
| | | // 创建 JSON 对象 |
| | | JSONObject result = new JSONObject(); |
| | | |
| | | ReportingWork reportingWork = new ReportingWork(); |
| | | reportingWork.setOrderId("NG24042301"); |
| | | reportingWork.setProductionId("NG24042301A"); |
| | | reportingWork.setProcessId("NG24042301A001"); |
| | | reportingWork.setDeviceName("磨边机"); |
| | | reportingWork.setThisProcess("切割"); |
| | | reportingWork.setNextProcess("磨边"); |
| | | reportingWork.setThisCompletedQuantity(1); |
| | | reportingWork.setThisWornQuantity(0); |
| | | reportingWork.setClasses("早班"); |
| | | reportingWork.setReportingWorkTime(LocalDateTime.now()); |
| | | reportingWork.setTeamsGroupsName("小廖一号"); |
| | | reportingWork.setCreator("小廖"); |
| | | |
| | | List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>(); |
| | | ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail(); |
| | | reportingWorkDetail.setTechnologyNumber(1); |
| | | reportingWorkDetail.setOrderNumber(1); |
| | | reportingWorkDetail.setCompletedQuantity(1); |
| | | reportingWorkDetail.setBreakageQuantity(0); |
| | | reportingWorkDetails.add(reportingWorkDetail); |
| | | |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | |
| | | // 将 ReportingWork 转换为 JSONObject |
| | | JSONObject reportingWorkJson = new JSONObject(objectMapper.writeValueAsString(reportingWork)); |
| | | reportingWorkJson.put("reportingWorkTime", reportingWork.getReportingWorkTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)); |
| | | // 将 ReportingWorkDetail 列表转换为 JSONArray |
| | | JSONArray detailsJsonArray = new JSONArray(objectMapper.writeValueAsString(reportingWorkDetails)); |
| | | |
| | | // 将 JSON 对象和数组添加到结果对象中 |
| | | result.put("title", reportingWorkJson); |
| | | result.put("detail", detailsJsonArray); |
| | | result.put("type", 0); |
| | | result.put("userId", "admin"); |
| | | result.put("userName", "admin"); |
| | | result.put("qualityInsStatus", 0); |
| | | |
| | | // 将 result 对象转换为字符串 |
| | | String jsonInputString = result.toString(); |
| | | System.out.println("jsonInputString : " + result); |
| | | // 发送请求 |
| | | try (OutputStream os = con.getOutputStream()) { |
| | | byte[] input = jsonInputString.getBytes("utf-8"); |
| | | os.write(input, 0, input.length); |
| | | } |
| | | |
| | | // 获取响应码 |
| | | int responseCode = con.getResponseCode(); |
| | | System.out.println("Response Code : " + responseCode); |
| | | |
| | | // 获取响应内容 |
| | | try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) { |
| | | StringBuilder response = new StringBuilder(); |
| | | String inputLine; |
| | | while ((inputLine = in.readLine()) != null) { |
| | | response.append(inputLine); |
| | | } |
| | | System.out.println("Response Body: " + response.toString()); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |