From 8c1af335146cc1dca907ecf1edfad029113aa038 Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Thu, 23 Apr 2026 09:48:23 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E7=BB=A9=E6=95=88=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BsEfficiencyTempServiceImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/impl/BsEfficiencyTempServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/impl/BsEfficiencyTempServiceImpl.java index 84fe56ec..a52670e3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/impl/BsEfficiencyTempServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/service/impl/BsEfficiencyTempServiceImpl.java @@ -9,6 +9,7 @@ import org.springblade.core.tool.api.R; import org.springblade.desk.common.feign.IMesNotifyMessageClient; import org.springblade.desk.common.pojo.entity.MesNotifyMessageEntity; import org.springblade.desk.common.service.IMesNotifyMessageService; +import org.springblade.desk.efficiency.enums.BsEfficiencyTaskEnum; import org.springblade.desk.efficiency.mapper.BsEfficiencyTempMapper; import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTaskEntity; import org.springblade.desk.efficiency.pojo.entity.BsEfficiencyTempEntity; @@ -64,6 +65,10 @@ public class BsEfficiencyTempServiceImpl extends BaseServiceImpl().eq(BsEfficiencyTaskEntity::getType, "2").eq(BsEfficiencyTaskEntity::getYearMonth, yearMonth).eq(BsEfficiencyTaskEntity::getTempId, bsEfficiencyTemp.getId())); if (subTask != null) { @@ -101,6 +106,10 @@ public class BsEfficiencyTempServiceImpl extends BaseServiceImpl().eq(BsEfficiencyTaskEntity::getType, "2").eq(BsEfficiencyTaskEntity::getYearMonth, yearMonth).eq(BsEfficiencyTaskEntity::getTempId, bsEfficiencyTemp.getId())); From 6f96153d0793f4c960b923887b6878eb5d11c419 Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Thu, 23 Apr 2026 09:51:47 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=BB=A9=E6=95=88=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/efficiency/mapper/EfficiencyTaskMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/EfficiencyTaskMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/EfficiencyTaskMapper.xml index 65c917b7..ec33d5a9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/EfficiencyTaskMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/EfficiencyTaskMapper.xml @@ -26,7 +26,7 @@ SELECT t.*, bu.real_name as reportUserName, bu1.real_name as createUserName, - case when t.status = '1' then '进行中' when t.status = '2' then '已完成' when t.status = '3' then '待审批' when t.status = '4' then '审批通过' when t.status = '5' then '审批不通过' else '' end as statusName, + case when t.status = '1' then '进行中' when t.status = '2' then '已完成' when t.status = '3' then '待审批' when t.status = '4' then '审批通过' when t.status = '5' then '审批不通过' when t.status = '6' then '已超期' else '' end as statusName, ba.link as attachLink, ba.original_name as attackName FROM BS_EFFICIENCY_TASK t @@ -52,7 +52,7 @@ SELECT t.*, bu.real_name as reportUserName, bu1.real_name as createUserName, - case when t.status = '1' then '进行中' when t.status = '2' then '已完成' when t.status = '3' then '待审批' when t.status = '4' then '审批通过' when t.status = '5' then '审批不通过' else '' end as statusName, + case when t.status = '1' then '进行中' when t.status = '2' then '已完成' when t.status = '3' then '待审批' when t.status = '4' then '审批通过' when t.status = '5' then '审批不通过' when t.status = '6' then '已超期' else '' end as statusName, ba.link as attachLink, ba.original_name as attackName FROM BS_EFFICIENCY_TASK t From 0689125c5bb98939d83c30c0d3927aa5446316b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Thu, 23 Apr 2026 10:14:12 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/produce/pojo/entity/WorkPlan.java | 1 - .../produce/pojo/vo/ByCardNoByPlanVO.java | 4 +- .../desk/energy/util/HttpRequestService.java | 74 ++++++- .../produce/service/IMacToolUseService.java | 5 + .../service/impl/MacToolUseServiceImpl.java | 190 ++++++++++++++++++ .../service/impl/PdaSaveServiceImpl.java | 3 +- .../service/impl/WorkPlanServiceImpl.java | 34 ++-- 7 files changed, 286 insertions(+), 25 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java index ed0c0ea6..e8aa51cd 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java @@ -31,7 +31,6 @@ import java.util.Map; @EqualsAndHashCode(callSuper = true) public class WorkPlan extends BaseEntity { /** - * TODO 工序状态要调整到常量类中 * 工序状态:未开始 */ public static Integer STATUS_NO_START = 1; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java index b5fe77dd..0a395d65 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java @@ -32,7 +32,7 @@ public class ByCardNoByPlanVO { private String batchNo; @Schema(description = "工序ID") - private Long ppsId; + private String ppsId; @Schema(description = "当前工序") private String ppsName; @@ -41,7 +41,7 @@ public class ByCardNoByPlanVO { private Double workQty; @Schema(description = "班组id") - private Long tsId; + private String tsId; @Schema(description = "班组名称") private String tsName; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java index 4a521853..0b0c624f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java @@ -1,5 +1,6 @@ package org.springblade.desk.energy.util; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; @@ -7,10 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.core.secure.BladeUser; import org.springframework.beans.factory.annotation.Value; -import org.springblade.desk.energy.pojo.entity.BsTowerEntity; -import org.springblade.desk.energy.pojo.entity.RpParameterSet; import org.springblade.desk.energy.service.*; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -18,6 +16,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -42,6 +41,15 @@ public class HttpRequestService { @Value("${request.lims.url}") private String limsUrl; + @Value("${request.iot.orgId}") + private String orgId; + + @Value("${request.iot.systemId}") + private String systemId; + + @Value("${request.equ.url}") + private String equUrl; + /** *

Description: 获取看板废水废气酸雾塔实时数据新接口

* @@ -170,4 +178,64 @@ public class HttpRequestService { } return null; } + + /** + *

Description: 获取产线每日实际用水用电量(历史数据)

+ * + * @param deviceId 设备id + * @param params + * @param startTime 开始时间 + * @param endTime 结束时间 + * @Author qjh + * @Date: 2023/1/6 10:10 + */ + public List getEneUsed(String deviceId, ArrayList params, String startTime, String endTime) { + // 头信息 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + JSONObject object = new JSONObject(); + object.put("orgId", orgId); + object.put("systemId", systemId); + object.put("params", params); // 设备对应的参数信息 + object.put("deviceId", deviceId); // 设备编码 + object.put("startTime", startTime); // 开始时间(入炉) + object.put("endTime", endTime); // 结束时间(出炉) + HttpEntity entity = new HttpEntity<>(object, headers); + ResponseEntity responseEntity = null; + try { + responseEntity = httpClientTemplate.postForEntity(iotNewUrl + "/deviceForZhgd/deviceDataHistoryByParams", entity, JSONObject.class); + JSONObject result = responseEntity.getBody(); + if (result != null && result.getInteger("code").equals(0)) { + List jsonList = JSONArray.parseArray(result.getJSONArray("result").toJSONString(), JSONObject.class); + if (jsonList != null && !jsonList.isEmpty()) { + return jsonList; + } + } else { + log.error("获取用水用电量、烧结解绑获取数据接口调用失败!" + result.getString("message") + "设备编码" + deviceId + "参数" + object); + } + } catch (Exception e) { + log.error("获取用水用电量、烧结解绑获取数据接口调用失败!" + e.getMessage() + "设备编码" + deviceId + "参数" + object); + } + return null; + } + + public JSONObject getParams(String deviceCode) { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + headers.add("appId", "1358950685609828353"); + JSONObject json = new JSONObject(); + json.put("deviceCode", deviceCode); // 设备编码 + HttpEntity entity = new HttpEntity<>(json, headers); + ResponseEntity responseEntity = httpClientTemplate.postForEntity(equUrl + "/api/device/device/prodLineInfo", entity, JSONObject.class); + JSONObject object = responseEntity.getBody(); + if (object.getInteger("code").equals(0)) { + JSONObject data = object.getJSONObject("data"); + if (data != null) { + return data; + } + } else { + log.error("获取设备对应的参数数据接口调用失败!" + "设备编码" + deviceCode); + } + return null; + } } \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java index 12c80bbc..74fb8390 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java @@ -75,4 +75,9 @@ public interface IMacToolUseService extends BaseService { MacToolUse queryByCode(String mtnCode); GoodsVO getMaterialMess(String goodsCode); + + /** + * 获取设备所需参数 + */ + void setSjDataCapture(MesQcProduceRunEntity qcProduceRun, Boolean aTrue); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java index 58df74fb..b93f6f2a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java @@ -1,10 +1,14 @@ package org.springblade.desk.produce.service.impl; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; +import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; @@ -14,6 +18,7 @@ import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.RackSetEntity; import org.springblade.desk.device.service.IEquipmentService; import org.springblade.desk.device.service.IRackSetService; +import org.springblade.desk.energy.util.HttpRequestService; import org.springblade.desk.produce.mapper.MacToolUseMapper; import org.springblade.desk.produce.pojo.dto.MesMacToolUseDTO; import org.springblade.desk.produce.pojo.entity.MacToolUse; @@ -25,9 +30,11 @@ import org.springblade.desk.produce.pojo.vo.MacToolUseVO; import org.springblade.desk.produce.pojo.vo.MesMacToolUseVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; import org.springblade.desk.produce.service.IMacToolUseService; +import org.springblade.desk.produce.service.IMesQcProduceRunService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -50,6 +57,15 @@ public class MacToolUseServiceImpl extends BaseServiceImpl eneUsed; + ArrayList params = Lists.newArrayList(); // 参数 + String prodLineLevel = null; // 温度上下浮动值 + List jsonList = null; // 根据参数获取到的设备参数信息 + Double heat = 0d; // 最高温度 + if (qcProduceRun.getTempSlot() != null && Double.parseDouble(qcProduceRun.getTempSlot()) > 0) { + heat = Double.valueOf(qcProduceRun.getTempSlot()); + } + Double vacuity = 1000000d; // 真空度 + if (qcProduceRun.getDataFourteen() != null && Double.parseDouble(qcProduceRun.getDataFourteen()) < vacuity) { + vacuity = Double.valueOf(qcProduceRun.getDataFourteen()); + } + Double setHeat = 20000d; // 设定温度 + List aaaList = new ArrayList<>(); // 温度大于200 得集合 + // 获取设备所需参数 + JSONObject deviceParams = this.getDeviceParams(qcProduceRun); + if (deviceParams != null) { + prodLineLevel = deviceParams.getString("prodLineLevel"); + if (org.apache.commons.lang3.StringUtils.isBlank(prodLineLevel)) { + prodLineLevel = "0"; + } + jsonList = JSONArray.parseArray(deviceParams.getJSONArray("prodLineMeasurePoint").toJSONString(), JSONObject.class); + if (jsonList != null && jsonList.size() > 0) { + // 处理参数 + for (JSONObject jsonObject : jsonList) { + params.add(jsonObject.getString("attrCode")); + } + String startTime = qcProduceRun.getInDate(); + // 获取当前时间字符串格式 + String endTime = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"); + if (unBind) { + endTime = qcProduceRun.getOutDate(); + } + // 获取数据 + eneUsed = httpRequestService.getEneUsed(qcProduceRun.getDeviceId(), params, startTime, endTime); + // 处理数据 + if (eneUsed != null && !eneUsed.isEmpty()) { + // 只有一个温度并且等于实际温度1 + Map eUMap = jsonList.stream().map(cbsSupplier -> new AbstractMap.SimpleEntry<>(cbsSupplier.getString("attrName"), cbsSupplier)) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + // 获取设定温度 + if (eUMap.get(sdwd01) != null && eneUsed.get(0).getString(eUMap.get(sdwd01).getString("attrCode")) != null) { + setHeat = Double.valueOf(eneUsed.get(0).getString(eUMap.get(sdwd01).getString("attrCode"))); + } else if (qcProduceRun.getDataTwo() != null) { + setHeat = Double.valueOf(qcProduceRun.getDataTwo()); + } + if (eUMap.get(heat2) != null) { // 如果实际温度2存在代表分区 + for (JSONObject jsonObject : eneUsed) { + if (jsonObject.getString(eUMap.get(heat2).getString("attrCode")) == null) return; + // 获取最高温度 + heat = this.setMaxHeat(eUMap, jsonObject, heat); + } + qcProduceRun.setTempSlot(String.valueOf(heat)); + } else { // 如果实际温度2不存在代表不是分区 + for (JSONObject jsonObject : eneUsed) { + if (jsonObject.getString(eUMap.get(heat1).getString("attrCode")) == null) return; + if (org.apache.commons.lang3.StringUtils.isBlank(jsonObject.getString(eUMap.get(heat1).getString("attrCode")))) + continue; + Double value = Double.valueOf(jsonObject.getString(eUMap.get(heat1).getString("attrCode"))); + // 获取最高温度 + if (value > heat) { + heat = value; + } + // 存储温度大于200 的数据 用与获取真空度 + if (value > 200) { + aaaList.add(jsonObject); + } + // 存储保温开始时间 + if (org.apache.commons.lang3.StringUtils.isBlank(qcProduceRun.getDataThirteen())) { + if (value >= setHeat) { + qcProduceRun.setDataThirteen(String.valueOf(jsonObject.getString("timestamp"))); + } + } else if (value < setHeat && org.apache.commons.lang3.StringUtils.isNotBlank(qcProduceRun.getDataThirteen()) && org.apache.commons.lang3.StringUtils.isBlank(qcProduceRun.getDataTwelve())) { + // 存储保温结束时间 + qcProduceRun.setDataTwelve(String.valueOf(jsonObject.getString("timestamp"))); + } + } + if (aaaList.size() > 0 && eUMap.get(sjzkd) != null) { + for (JSONObject jsonObject : aaaList) { + if (Double.valueOf(jsonObject.getString(eUMap.get(sjzkd).getString("attrCode"))) < vacuity) { + vacuity = Double.valueOf(jsonObject.getString(eUMap.get(sjzkd).getString("attrCode"))); + } + } + // 真空度 + qcProduceRun.setDataFourteen(new DecimalFormat("#.000000").format(vacuity)); + } + qcProduceRun.setTempSlot(String.valueOf(heat)); + } + // 获取链速 + if (eUMap.get(ls) != null) { + if (eneUsed.get(0).getString(eUMap.get(ls).getString("attrCode")) != null) { + String string = eneUsed.get(0).getString(eUMap.get(ls).getString("attrCode")); + qcProduceRun.setVSpeed(string); + } + } + // 获取露点 + if (eUMap.get(ld) != null) { + if (eneUsed.get(0).getString(eUMap.get(ld).getString("attrCode")) != null) { + String string = eneUsed.get(0).getString(eUMap.get(ld).getString("attrCode")); + qcProduceRun.setDataEleven(string); + } + } + } + } + } + mesQcProduceRunService.updateById(qcProduceRun); + } + + private Double setMaxHeat(Map eUMap, JSONObject jsonObject, Double heat) { + if (eUMap.get(heat1) != null) { + if (jsonObject.getString(eUMap.get(heat1).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat1).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat1).getString("attrCode"))); + } + } + if (eUMap.get(heat2) != null) { + if (jsonObject.getString(eUMap.get(heat2).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat2).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat2).getString("attrCode"))); + } + } + if (eUMap.get(heat3) != null) { + if (jsonObject.getString(eUMap.get(heat3).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat3).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat3).getString("attrCode"))); + } + } + if (eUMap.get(heat4) != null) { + if (jsonObject.getString(eUMap.get(heat4).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat4).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat4).getString("attrCode"))); + } + } + if (eUMap.get(heat5) != null) { + if (jsonObject.getString(eUMap.get(heat5).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat5).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat5).getString("attrCode"))); + } + } + if (eUMap.get(heat6) != null) { + if (jsonObject.getString(eUMap.get(heat6).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat6).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat6).getString("attrCode"))); + } + } + if (eUMap.get(heat7) != null) { + if (jsonObject.getString(eUMap.get(heat7).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat7).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat7).getString("attrCode"))); + } + } + if (eUMap.get(heat8) != null) { + if (jsonObject.getString(eUMap.get(heat8).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat8).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat8).getString("attrCode"))); + } + } + if (eUMap.get(heat9) != null) { + if (jsonObject.getString(eUMap.get(heat9).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat9).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat9).getString("attrCode"))); + } + } + if (eUMap.get(heat10) != null) { + if (jsonObject.getString(eUMap.get(heat10).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat10).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat10).getString("attrCode"))); + } + } + if (eUMap.get(heat11) != null) { + if (jsonObject.getString(eUMap.get(heat11).getString("attrCode")) != null && Double.valueOf(jsonObject.getString(eUMap.get(heat11).getString("attrCode"))) > heat) { + heat = Double.valueOf(jsonObject.getString(eUMap.get(heat11).getString("attrCode"))); + } + } + return heat; + } + + private JSONObject getDeviceParams(MesQcProduceRunEntity qcProduceRun) { + return httpRequestService.getParams(qcProduceRun.getDeviceId()); + } + public static final int time2Integer(Date d) { Calendar cal = Calendar.getInstance(); cal.setTime(d); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java index 2291e130..8aef9aa4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaSaveServiceImpl.java @@ -515,8 +515,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl paList = prPlateAroundService.listByWpId(wpId); -// WorkPlan workPlan = this.getById(wpId); -// if (!paList.isEmpty()) { -// for (PrPlateAround prPlateAround : paList) { -// // 如果有出库记录,删除上序的入库记录 -// if (PrPlateAround.BEFORE_PLAN_OUT.equals(prPlateAround.getPaType())) { -// if (workPlan.getFrontWpId() != null) { -// PrPlateAround prPlateAround1 = prPlateAroundService.getPrPlateAround(prWorkPlan.getFrontWorkPlan().getWpId(), PrPlateAround.BEFORE_PLAT_IN); -// if (prPlateAround1 != null && prPlateAround1.getPaId() != null) { -// prPlateAroundService.delete(prPlateAround1.getPaId()); -// } -// } -// } -// prPlateAroundService.delete(prPlateAround.getPaId()); -// } -// } + // 删除镀前出入库记录 + List paList = plateAroundMapper.selectList(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getWpId, wpId)); + WorkPlan workPlan = this.getById(wpId); + if (!paList.isEmpty()) { + for (PlateAround prPlateAround : paList) { + // 如果有出库记录,删除上序的入库记录 + if (PlateAround.BEFORE_PLAN_OUT.equals(prPlateAround.getPaType())) { + if (workPlan.getFrontWpId() != null) { + PlateAround prPlateAround1 = plateAroundMapper.selectOne(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getWpId, workPlan.getFrontWpId()).eq(PlateAround::getPaType, PlateAround.BEFORE_PLAT_IN)); + if (prPlateAround1 != null) { + plateAroundMapper.deleteById(prPlateAround1.getId()); + } + } + } + plateAroundMapper.deleteById(prPlateAround.getId()); + } + } this.removeById(wpId); } From 8162d6d5ef63294c81801b4bdc0e28cc7c799ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Thu, 23 Apr 2026 10:47:26 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ProcessQualityMaintenanceServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/ProcessQualityMaintenanceServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/ProcessQualityMaintenanceServiceImpl.java index 446974fb..34af6b89 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/ProcessQualityMaintenanceServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/ProcessQualityMaintenanceServiceImpl.java @@ -149,7 +149,7 @@ public class ProcessQualityMaintenanceServiceImpl implements IProcessQualityMain MesRbFilePreserveDetailDTO mesRbFilePreserveDetailDTO = new MesRbFilePreserveDetailDTO(); BeanUtils.copyProperties(dsRbFilePreserveDetail, mesRbFilePreserveDetailDTO); return mesRbFilePreserveDetailDTO; - }).sorted(Comparator.comparing(MesRbFilePreserveDetailDTO::getDetailIndex)).toList(); + }).sorted(Comparator.comparing(dto -> Integer.parseInt(dto.getDetailIndex()))).toList(); dsRbFilePreserveSlot.setChildrenList(childrenList); } }