From d48de59b57bce614e17e91f1845789c071930a2f Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期二, 16 九月 2025 08:01:35 +0800
Subject: [PATCH] 1、大理片进片报表添加连续工作时间统计
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java | 342 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 340 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 94991b1..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,8 +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;
@@ -10,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
@@ -26,6 +63,78 @@
BigStorageCageService bigStorageCageService;
@Autowired
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() {
@@ -60,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
@@ -74,4 +183,233 @@
log.info("鑾峰彇澶х悊鐗囩淇℃伅锛歿}", bigStorageCageService.selectBigStorageCageUsage());
}
+ @Test
+ public void selectBigStorageCageDetails() {
+ 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