From f68d3c71819feb59e7a227a5d992b059b900916c Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期五, 28 三月 2025 08:28:26 +0800 Subject: [PATCH] 修改报表,界面添加查询流程卡个数,调整推送数据到前端的间隔 --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java | 334 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 332 insertions(+), 2 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java index 8ab9cf4..207054d 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java @@ -1,9 +1,36 @@ 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; @@ -11,7 +38,16 @@ 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 @@ -29,6 +65,76 @@ 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() { @@ -63,7 +169,7 @@ @Test public void judgeGlassTypeStatus() { - plcStorageCageTask.judgeGlassTypeStatus("P24060403|6|7", Const.A09_OUT_TARGET_POSITION); + plcStorageCageTask.judgeGlassTypeStatus("P24060403|6|7", Const.A09_OUT_TARGET_POSITION, "mesD03Address"); } @Test @@ -82,4 +188,228 @@ 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() { + bigStorageCageDetailsService.selectFeedTask(); +// 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); + List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() + .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL) + .orderByAsc(BigStorageCageDetails::getSlot) + .orderByDesc(BigStorageCageDetails::getId)); + plcStorageCageTask.computeOutMoreGlassInfo(artificialList, Boolean.FALSE, 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 { + // 鐩爣绯荤粺鐨凙PI 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(); + } + } } -- Gitblit v1.8.0