From e8da7060c9c2d737462768d037af913a7ac48c41 Mon Sep 17 00:00:00 2001 From: 10001195 Date: Tue, 27 Jan 2026 10:22:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E7=9C=8B=E6=9D=BF=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E7=B1=BB=E5=A2=9E=E5=8A=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/KanbanController.java | 263 ++++++++++++++++-- .../KanBanGasketStandardInfoRequest.java | 21 ++ .../request/KanBanQueryStatementRequest.java | 13 + .../request/KanBanScheduleInfoRequest.java | 19 ++ .../request/KanBanThresholdInfoRequest.java | 25 ++ 5 files changed, 324 insertions(+), 17 deletions(-) create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanGasketStandardInfoRequest.java create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanQueryStatementRequest.java create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanScheduleInfoRequest.java create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanThresholdInfoRequest.java diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/KanbanController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/KanbanController.java index f162050f..040bcee8 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/KanbanController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/KanbanController.java @@ -3,19 +3,37 @@ package com.nflg.mobilebroken.admin.controller; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import com.nflg.mobilebroken.admin.service.ITranslate; import com.nflg.mobilebroken.common.pojo.ApiResult; -import com.nflg.mobilebroken.common.pojo.request.TranslateWordRequest; +import com.nflg.mobilebroken.common.pojo.request.KanBanGasketStandardInfoRequest; +import com.nflg.mobilebroken.common.pojo.request.KanBanQueryStatementRequest; +import com.nflg.mobilebroken.common.pojo.request.KanBanScheduleInfoRequest; +import com.nflg.mobilebroken.common.pojo.request.KanBanThresholdInfoRequest; +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicHeader; import org.apache.http.util.EntityUtils; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; +import java.io.IOException; +import java.lang.reflect.Field; +import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** @@ -24,37 +42,185 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/kanban") public class KanbanController extends ControllerBase{ - + public static final String KANBAN_URL = "http://47.94.198.125:5555/zhonglv/"; + private static OkHttpClient okHttpClient; + private static int timeout = 80; /** * 初始化数据 * @param - * @return 翻译结果 + * @return */ @GetMapping("initialize") public ApiResult initialize(){ JSONArray array=new JSONArray(); - String initdata1=httpOfGet("http://47.94.198.125:5555/zhonglv/initdata1","type","initworktime"); + String initdata1=HttpOfGet(KANBAN_URL+"initdata1","type","initworktime"); JSONObject jsonObject = JSONUtil.parseObj(initdata1); array.add(jsonObject); - String initdata2=httpOfGet("http://47.94.198.125:5555/zhonglv/initdata1","type","initstandard"); + String initdata2=HttpOfGet(KANBAN_URL+"initdata1","type","initstandard"); JSONObject jsonObject2 = JSONUtil.parseObj(initdata2); array.add(jsonObject2); - String getdata1=httpOfGet("http://47.94.198.125:5555/zhonglv/getdata1","type","alarm"); + String getdata1=HttpOfGet(KANBAN_URL+"getdata1","type","alarm"); JSONObject jsonObject3 = JSONUtil.parseObj(getdata1); array.add(jsonObject3); - String getdata2=httpOfGet("http://47.94.198.125:5555/zhonglv/getdata1","type","device"); + String getdata2=HttpOfGet(KANBAN_URL+"getdata1","type","device"); JSONObject jsonObject4 = JSONUtil.parseObj(getdata2); array.add(jsonObject4); - String getdata3=httpOfGet("http://47.94.198.125:5555/zhonglv/getdata1","type","chart"); + String getdata3=HttpOfGet(KANBAN_URL+"getdata1","type","chart"); JSONObject jsonObject5 = JSONUtil.parseObj(getdata3); array.add(jsonObject5); - String getdata4=httpOfGet("http://47.94.198.125:5555/zhonglv/getdata1","type","other"); + String getdata4=HttpOfGet(KANBAN_URL+"getdata1","type","other"); JSONObject jsonObject6 = JSONUtil.parseObj(getdata4); array.add(jsonObject6); return ApiResult.success(jsonObject6.toString()); } - public static String httpOfGet(String url, String paramName, String paramValue){ + /** + * 班次设置保存接口 + * @param request + * @return + */ + @PostMapping("saveSchedule") + public ApiResult saveSchedule(@Valid @RequestBody KanBanScheduleInfoRequest request) throws Exception { + Map map=objectToMap(request); + /* map.put("work1startime","00:00"); + map.put("work1endtime","23:30"); + map.put("work2startime","00:00"); + map.put("work2endtime","23:30"); + map.put("work3startime","00:00"); + map.put("work3endtime","23:30"); + map.put("work1planproduce","300"); + map.put("work2planproduce","300"); + map.put("work3planproduce","00");*/ + String result=doPostFormData(KANBAN_URL+"saveworktime1/",map).body().string(); + JSONObject jsonObject = JSONUtil.parseObj(result); + if(jsonObject.get("status").equals("success")){ + return ApiResult.success("success"); + }else{ + return ApiResult.error(jsonObject.get("message").toString()); + } + } + + /** + * 阈值参数设置保存接口 + * @param request + * @return + */ + @PostMapping("saveThreshold") + public ApiResult saveThreshold(@Valid @RequestBody KanBanThresholdInfoRequest request) throws Exception { + Map map=objectToMap(request); + /* map.put("screen_P80_threshold","6.3"); + map.put("screen_P100_threshold","6.9"); + map.put("mid_input_F100_threshold","6.9"); + map.put("mid_output_P100_threshold","25"); + map.put("mid_output_P50_threshold","10"); + map.put("mid_passing_threshold","98"); + map.put("fine_input_F100_threshold","20"); + map.put("fine_output_P100_threshold","10"); + map.put("fine_output_P50_threshold","12"); + map.put("fine_passing_threshold","56"); + map.put("mid_dutyRatio_min","99"); + map.put("mid_dutyRatio_max","100"); + map.put("fine_dutyRatio_min","1"); + map.put("fine_dutyRatio_max","88"); + map.put("mid_P80_min","5"); + map.put("mid_P80_max","55");*/ + String result=doPostFormData(KANBAN_URL+"savestandard1/",map).body().string(); + JSONObject jsonObject = JSONUtil.parseObj(result); + if(jsonObject.get("status").equals("success")){ + return ApiResult.success("success"); + }else{ + return ApiResult.error(jsonObject.get("message").toString()); + } + } + + + /** + * 报表查询接口 + * @param request + * @return + */ + @PostMapping("queryStatement") + public ApiResult queryStatement(@Valid @RequestBody KanBanQueryStatementRequest request) throws Exception { + JSONArray jsonArray = new JSONArray(); + jsonArray.put(DateTimeToStr(request.getStartTime())); + jsonArray.put(DateTimeToStr(request.getEndTime())); + String result=HttpOfPost(KANBAN_URL+"statement1/",jsonArray.toString()); + if(null!=result){ + return ApiResult.success(result); + } + return ApiResult.error("查询出错"); + } + + /** + * 参数标定接口 + * @param request + * @return + */ + @PostMapping("saveGasketStandard") + public ApiResult saveGasketStandard(@Valid @RequestBody KanBanGasketStandardInfoRequest request) throws Exception { + Map map=objectToMap(request); + /* map.put("mid_gasket_startime","2026-01-05 08:57"); + map.put("mid_gasket_endtime","2026-01-05 10:57"); + map.put("mid_gasket_abrasion","1"); + map.put("fine1_gasket_startime","2026-01-05 08:57"); + map.put("fine1_gasket_endtime","2026-01-05 10:57"); + map.put("fine1_gasket_abrasion","1"); + map.put("fine2_gasket_startime","2026-01-05 08:57"); + map.put("fine2_gasket_endtime","2026-01-05 10:57"); + map.put("fine2_gasket_abrasion","1"); + map.put("mid_ratedPower","1"); + map.put("fine1_ratedPower","1"); + map.put("fine2_ratedPower","1");*/ + String result=doPostFormData(KANBAN_URL+"save_gasketstandard1/",map).body().string(); + JSONObject jsonObject = JSONUtil.parseObj(result); + if(jsonObject.get("status").equals("success")){ + return ApiResult.success("success"); + }else{ + return ApiResult.error(jsonObject.get("message").toString()); + } + } + + + public static String DateTimeToStr(LocalDateTime localDateTime ){ + ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneOffset.UTC); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'"); + return zonedDateTime.format(formatter); + } + + + public static String HttpOfPost(String url, String jsonArray){ + CloseableHttpClient client = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(url); + + try { + // 创建JSON字符串实体 + StringEntity entity = new StringEntity(jsonArray); + httpPost.setEntity(entity); + httpPost.setHeader("Accept", "application/json"); + httpPost.setHeader("Content-type", "application/json"); + + // 发送请求并获取响应 + CloseableHttpResponse response = client.execute(httpPost); + try { + HttpEntity responseEntity = response.getEntity(); + if (responseEntity != null) { + return EntityUtils.toString(responseEntity); + } + } finally { + response.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + client.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + return null; + } + public static String HttpOfGet(String url, String paramName, String paramValue){ CloseableHttpClient httpClient = HttpClients.createDefault(); try { HttpGet request = new HttpGet(url); @@ -64,8 +230,6 @@ public class KanbanController extends ControllerBase{ request.addHeader(new BasicHeader(paramName, paramValue)); CloseableHttpResponse response = httpClient.execute(request); try { - //int statusCode = response.getStatusLine().getStatusCode(); - // 获取响应体内容 String responseBody = EntityUtils.toString(response.getEntity()); return responseBody; } finally { @@ -82,4 +246,69 @@ public class KanbanController extends ControllerBase{ } return null; } + + /** + * form-data表单请求 + * + * @param url URL地址 + * @param map 参数 + * @return Response + * @throws IOException e + */ + public static Response doPostFormData(String url, Map map) throws Exception { + okhttp3.RequestBody requestBody = buildRequestBody(map); + Request request = new Request.Builder() + .url(url) + .header("Content-Type", "multipart/form-data") + .post(requestBody) + .build(); + + return getOkHttpClient().newCall(request).execute(); + } + /** + * 获取对象 + * + * @return OkHttpClient + */ + private static OkHttpClient getOkHttpClient() { + if (okHttpClient != null) { + return okHttpClient; + } + + okHttpClient = new OkHttpClient.Builder() + .connectTimeout(timeout, TimeUnit.SECONDS) + .writeTimeout(timeout, TimeUnit.SECONDS) + .readTimeout(timeout, TimeUnit.SECONDS) + .build(); + return okHttpClient; + } + /** + * 构建键值对表单 + * + * @param map 参数 + * @return RequestBody + */ + private static okhttp3.RequestBody buildRequestBody(Map map) { + FormBody.Builder builder = new FormBody.Builder(StandardCharsets.UTF_8); + if (map != null && map.size() > 0) { + for (String string : map.keySet()) { + builder.add(string, (String) map.get(string)); + } + } + return builder.build(); + } + + public Map objectToMap(Object obj) throws IllegalAccessException { + Field[] fields = obj.getClass().getDeclaredFields(); + + return Arrays.stream(fields) + .peek(field -> field.setAccessible(true)) + .collect(Collectors.toMap(Field::getName, field -> { + try { + return field.get(obj); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + })); + } } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanGasketStandardInfoRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanGasketStandardInfoRequest.java new file mode 100644 index 00000000..c2f72471 --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanGasketStandardInfoRequest.java @@ -0,0 +1,21 @@ +package com.nflg.mobilebroken.common.pojo.request; + +import lombok.Data; + + +@Data +public class KanBanGasketStandardInfoRequest { + + private String mid_gasket_startime; + private String mid_gasket_endtime; + private String mid_gasket_abrasion; + private String fine1_gasket_startime; + private String fine1_gasket_endtime; + private String fine1_gasket_abrasion; + private String fine2_gasket_startime; + private String fine2_gasket_endtime; + private String fine2_gasket_abrasion; + private String mid_ratedPower; + private String fine1_ratedPower; + private String fine2_ratedPower; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanQueryStatementRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanQueryStatementRequest.java new file mode 100644 index 00000000..8c753d28 --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanQueryStatementRequest.java @@ -0,0 +1,13 @@ +package com.nflg.mobilebroken.common.pojo.request; + +import lombok.Data; + +import java.time.LocalDateTime; + + +@Data +public class KanBanQueryStatementRequest { + + private LocalDateTime startTime; + private LocalDateTime endTime; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanScheduleInfoRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanScheduleInfoRequest.java new file mode 100644 index 00000000..4943459d --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanScheduleInfoRequest.java @@ -0,0 +1,19 @@ +package com.nflg.mobilebroken.common.pojo.request; + +import lombok.Data; + + + +@Data +public class KanBanScheduleInfoRequest { + + private String work1startime; + private String work1endtime; + private String work2startime; + private String work2endtime; + private String work3startime; + private String work3endtime; + private String work1planproduce; + private String work2planproduce; + private String work3planproduce; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanThresholdInfoRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanThresholdInfoRequest.java new file mode 100644 index 00000000..dad38f25 --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/KanBanThresholdInfoRequest.java @@ -0,0 +1,25 @@ +package com.nflg.mobilebroken.common.pojo.request; + +import lombok.Data; + + +@Data +public class KanBanThresholdInfoRequest { + + private String screen_P80_threshold; + private String screen_P100_threshold; + private String mid_input_F100_threshold; + private String mid_output_P100_threshold; + private String mid_output_P50_threshold; + private String mid_passing_threshold; + private String fine_input_F100_threshold; + private String fine_output_P100_threshold; + private String fine_output_P50_threshold; + private String fine_passing_threshold; + private String mid_dutyRatio_min; + private String mid_dutyRatio_max; + private String fine_dutyRatio_min; + private String fine_dutyRatio_max; + private String mid_P80_min; + private String mid_P80_max; +}