From 55e91c77ffe1977ffdc977921db3407a85c2cd60 Mon Sep 17 00:00:00 2001 From: qinyulong Date: Fri, 23 Jan 2026 17:37:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8F=E5=85=B7=E4=BF=9D=E5=85=BB=E5=88=9D?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/MeasuringUpkeepEntity.java | 21 +++++ .../pojo/request/MeasuringUpkeepQuery.java | 41 +++++++++ .../controller/MeasuringUpkeepController.java | 17 ++-- .../service/IMeasuringUpkeepService.java | 10 ++- .../impl/MeasuringUpkeepServiceImpl.java | 90 ++++++++++++++++++- 5 files changed, 170 insertions(+), 9 deletions(-) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/request/MeasuringUpkeepQuery.java diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasuringUpkeepEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasuringUpkeepEntity.java index f40e3c78..5778e8ba 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasuringUpkeepEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasuringUpkeepEntity.java @@ -12,6 +12,8 @@ import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.tenant.mp.TenantEntity; import java.io.Serial; +import java.util.HashMap; +import java.util.Map; /** * 量具保养 实体类 @@ -58,5 +60,24 @@ public class MeasuringUpkeepEntity extends BaseEntity { */ @Schema(description = "库存物料") private Long rlsId; + /** + * 新建 + */ + public static Integer CURSTATUS_NEW = 0; + /** + * 已申请 + */ + public static Integer CURSTATUS_YSQ = 1; + + public static Map curStatusMap = new HashMap<>(3); + + static { + curStatusMap.put(CURSTATUS_NEW, "新建"); + curStatusMap.put(CURSTATUS_YSQ, "已申请"); + } + + public String getCurStatusTitle() { + return curStatusMap.get(this.getStatus()); + } } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/request/MeasuringUpkeepQuery.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/request/MeasuringUpkeepQuery.java new file mode 100644 index 00000000..1659ecd8 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/request/MeasuringUpkeepQuery.java @@ -0,0 +1,41 @@ +package org.springblade.desk.device.pojo.request; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * 量具保养查询条件封装类 + * + * @author qyl + * @since 2026-01-23 + */ +@Data +public class MeasuringUpkeepQuery { + + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String toolStatus; + /** + * 生产批次号 + */ + @Schema(description = "生产批次号") + private String toolSpec; + /** + * 仓库 + */ + @Schema(description = "仓库") + private String typeName; + /** + * 库位号 + */ + @Schema(description = "库位号") + private String equiCode; + /** + * 状态 + */ + @Schema(description = "状态") + private Short status; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/MeasuringUpkeepController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/MeasuringUpkeepController.java index 3a9af67b..30315cfc 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/MeasuringUpkeepController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/MeasuringUpkeepController.java @@ -17,6 +17,7 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.desk.device.pojo.excel.MeasuringUpkeepExcel; +import org.springblade.desk.device.pojo.request.MeasuringUpkeepQuery; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -65,11 +66,7 @@ public class MeasuringUpkeepController extends BladeController { @GetMapping("/page") @ApiOperationSupport(order = 3) @Operation(summary = "分页", description = "") - @Parameters({ - @Parameter(name = "mmCode", description = "保养单号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), - @Parameter(name = "approvalStatus", description = "审批状态", in = ParameterIn.QUERY, schema = @Schema(type = "int")), - }) - public R> page(@Parameter(hidden = true) MeasuringUpkeepEntity measuringUpkeep, Query query) { + public R> page(@Parameter(hidden = true) MeasuringUpkeepQuery measuringUpkeep, Query query) { IPage pages = measuringUpkeepService.selectMeasuringUpkeepPage(Condition.getPage(query), measuringUpkeep); return R.data(MeasuringUpkeepWrapper.build().pageVO(pages)); } @@ -115,6 +112,16 @@ public class MeasuringUpkeepController extends BladeController { } + /** + * 量具保养申请 + */ + @PostMapping("/maintenanceAppFun") + @ApiOperationSupport(order = 8) + @Operation(summary = "量具保养申请", description = "传入ids") + public R maintenanceAppFun(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return measuringUpkeepService.maintenanceAppFun(Func.toLongList(ids)); + } + /** * 导出数据 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IMeasuringUpkeepService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IMeasuringUpkeepService.java index de4f5b1a..e34f23ba 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IMeasuringUpkeepService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IMeasuringUpkeepService.java @@ -1,8 +1,10 @@ package org.springblade.desk.device.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.tool.api.R; import org.springblade.desk.device.pojo.entity.MeasuringUpkeepEntity; import org.springblade.desk.device.pojo.excel.MeasuringUpkeepExcel; +import org.springblade.desk.device.pojo.request.MeasuringUpkeepQuery; import org.springblade.desk.device.pojo.vo.MeasuringUpkeepVO; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -23,7 +25,7 @@ public interface IMeasuringUpkeepService extends BaseService */ - IPage selectMeasuringUpkeepPage(IPage page, MeasuringUpkeepEntity measuringUpkeep); + IPage selectMeasuringUpkeepPage(IPage page, MeasuringUpkeepQuery measuringUpkeep); /** @@ -34,4 +36,10 @@ public interface IMeasuringUpkeepService extends BaseService exportMeasuringUpkeep(Wrapper queryWrapper); + /** + * 保养申请 + * + * @param ids + */ + R maintenanceAppFun(List ids); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/MeasuringUpkeepServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/MeasuringUpkeepServiceImpl.java index f12b76fc..32381e41 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/MeasuringUpkeepServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/MeasuringUpkeepServiceImpl.java @@ -1,18 +1,32 @@ package org.springblade.desk.device.service.impl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.tool.api.R; +import org.springblade.desk.device.pojo.entity.MeasurementRecordsEntity; import org.springblade.desk.device.pojo.entity.MeasuringUpkeepEntity; import org.springblade.desk.device.pojo.entity.MeasuringUpkeepEntity; import org.springblade.desk.device.pojo.excel.MeasuringUpkeepExcel; +import org.springblade.desk.device.pojo.request.MeasuringUpkeepQuery; import org.springblade.desk.device.pojo.vo.MeasuringUpkeepVO; import org.springblade.desk.device.mapper.MeasuringUpkeepMapper; import org.springblade.desk.device.service.IMeasuringUpkeepService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -22,19 +36,27 @@ import java.util.Objects; * @author qyl * @since 2025-12-29 */ +@Slf4j @Service public class MeasuringUpkeepServiceImpl extends BaseServiceImpl implements IMeasuringUpkeepService { + // 使用JDK 17内置的HttpClient(线程安全,可复用) + private final HttpClient httpClient = HttpClient.newBuilder() + .connectTimeout(Duration.ofSeconds(30)) + .version(HttpClient.Version.HTTP_2) + .build(); + + @Value("${request.lims.url}") + private String limsUrl; @Override - public IPage selectMeasuringUpkeepPage(IPage page, MeasuringUpkeepEntity measuringUpkeep) { + public IPage selectMeasuringUpkeepPage(IPage page, MeasuringUpkeepQuery measuringUpkeep) { // return page.setRecords(baseMapper.selectMeasuringUpkeepPage(page, measuringUpkeep)); // 1. 创建条件构造器 LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); // 2. 动态添加条件(核心!) // 根据实体对象 entity 中字段是否为空,来动态拼接WHERE条件 - wrapper.like(Objects.nonNull(measuringUpkeep.getMmCode()), MeasuringUpkeepEntity::getMmCode, measuringUpkeep.getMmCode()); - wrapper.eq(Objects.nonNull(measuringUpkeep.getApprovalStatus()), MeasuringUpkeepEntity::getApprovalStatus, measuringUpkeep.getApprovalStatus()); + wrapper.eq(Objects.nonNull(measuringUpkeep.getStatus()), MeasuringUpkeepEntity::getStatus, measuringUpkeep.getStatus()); // 3. 执行分页查询 return baseMapper.selectPage(page, wrapper); @@ -50,4 +72,66 @@ public class MeasuringUpkeepServiceImpl extends BaseServiceImpl ids) { + if (ids == null && ids.size() == 0) { + return R.fail("请选择数据!"); + } + for (Long id : ids) { + MeasuringUpkeepEntity measuringUpkeep = this.getById(id); + if (measuringUpkeep == null) { + continue; + } + // 构建请求体JSON + JSONObject requestBody = buildRequestBody(measuringUpkeep); + + // 创建HTTP请求 + HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create(limsUrl + "/api/cloud-customized/zhgdDeviceParams/getDeviceListZhgd")) + .header("Content-Type", "application/json") + .header("Accept", "application/json") + .POST(HttpRequest.BodyPublishers.ofString(requestBody.toJSONString())) + .timeout(Duration.ofSeconds(60)) + .build(); + + try { + // 发送同步请求 + HttpResponse response = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); + if (response.statusCode() != 200) { + log.error("HTTP请求失败,状态码: {}", response.statusCode()); + continue; + } + //成功返回改变申请单状态 + String responseBody = response.body(); + JSONObject result = JSONObject.parseObject(responseBody); + if (result != null && result.getBoolean("success")) { + measuringUpkeep.setStatus(MeasuringUpkeepEntity.CURSTATUS_YSQ); + this.updateById(measuringUpkeep); + } + + } catch (Exception e) { + log.error("获取计量记录记录数据接口调用失败: {}", e.getMessage(), e); + } + } + return null; + } + + /** + * 构建请求体 + */ + private JSONObject buildRequestBody(MeasuringUpkeepEntity measuringUpkeep) { + JSONObject object = new JSONObject(); +// object.put("deviceName",smm.getStRealtimeStock().getCoGoods().getGoodsName()); +// object.put("model",smm.getStRealtimeStock().getCoGoods().getSpecifications()); +// object.put("prtno",smm.getStRealtimeStock().getCoGoods().getGoodsCode()); + object.put("idstr", measuringUpkeep.getMmCode()); +// object.put("num",smm.getStRealtimeStock().getQuantity()); + object.put("source", "5"); + object.put("deptno", "3400"); +// +// log.debug("请求参数: {}", object.toJSONString()); + return object; + } + }