量具保养初版

develop-QA
qinyulong 3 months ago
parent 38473e929d
commit 55e91c77ff
  1. 21
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasuringUpkeepEntity.java
  2. 41
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/request/MeasuringUpkeepQuery.java
  3. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/MeasuringUpkeepController.java
  4. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IMeasuringUpkeepService.java
  5. 90
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/MeasuringUpkeepServiceImpl.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<Integer, String> curStatusMap = new HashMap<>(3);
static {
curStatusMap.put(CURSTATUS_NEW, "新建");
curStatusMap.put(CURSTATUS_YSQ, "已申请");
}
public String getCurStatusTitle() {
return curStatusMap.get(this.getStatus());
}
}

@ -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;
}

@ -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<IPage<MeasuringUpkeepVO>> page(@Parameter(hidden = true) MeasuringUpkeepEntity measuringUpkeep, Query query) {
public R<IPage<MeasuringUpkeepVO>> page(@Parameter(hidden = true) MeasuringUpkeepQuery measuringUpkeep, Query query) {
IPage<MeasuringUpkeepEntity> 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));
}
/**
* 导出数据
*/

@ -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<MeasuringUpkeepEnti
* @param measuringUpkeep 查询参数
* @return IPage<MeasuringUpkeepVO>
*/
IPage<MeasuringUpkeepEntity> selectMeasuringUpkeepPage(IPage<MeasuringUpkeepEntity> page, MeasuringUpkeepEntity measuringUpkeep);
IPage<MeasuringUpkeepEntity> selectMeasuringUpkeepPage(IPage<MeasuringUpkeepEntity> page, MeasuringUpkeepQuery measuringUpkeep);
/**
@ -34,4 +36,10 @@ public interface IMeasuringUpkeepService extends BaseService<MeasuringUpkeepEnti
*/
List<MeasuringUpkeepExcel> exportMeasuringUpkeep(Wrapper<MeasuringUpkeepEntity> queryWrapper);
/**
* 保养申请
*
* @param ids
*/
R maintenanceAppFun(List<Long> ids);
}

@ -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<MeasuringUpkeepMapper, MeasuringUpkeepEntity> 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<MeasuringUpkeepEntity> selectMeasuringUpkeepPage(IPage<MeasuringUpkeepEntity> page, MeasuringUpkeepEntity measuringUpkeep) {
public IPage<MeasuringUpkeepEntity> selectMeasuringUpkeepPage(IPage<MeasuringUpkeepEntity> page, MeasuringUpkeepQuery measuringUpkeep) {
// return page.setRecords(baseMapper.selectMeasuringUpkeepPage(page, measuringUpkeep));
// 1. 创建条件构造器
LambdaQueryWrapper<MeasuringUpkeepEntity> wrapper = Wrappers.<MeasuringUpkeepEntity>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<MeasuringUpkeepM
return measuringUpkeepList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public R maintenanceAppFun(List<Long> 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<String> 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;
}
}

Loading…
Cancel
Save