|
|
|
@ -1,18 +1,32 @@ |
|
|
|
package org.springblade.desk.device.service.impl; |
|
|
|
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.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
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.entity.MeasuringUpkeepEntity; |
|
|
|
import org.springblade.desk.device.pojo.entity.MeasuringUpkeepEntity; |
|
|
|
import org.springblade.desk.device.pojo.excel.MeasuringUpkeepExcel; |
|
|
|
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.pojo.vo.MeasuringUpkeepVO; |
|
|
|
import org.springblade.desk.device.mapper.MeasuringUpkeepMapper; |
|
|
|
import org.springblade.desk.device.mapper.MeasuringUpkeepMapper; |
|
|
|
import org.springblade.desk.device.service.IMeasuringUpkeepService; |
|
|
|
import org.springblade.desk.device.service.IMeasuringUpkeepService; |
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
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.List; |
|
|
|
import java.util.Objects; |
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
|
|
|
|
@ -22,19 +36,27 @@ import java.util.Objects; |
|
|
|
* @author qyl |
|
|
|
* @author qyl |
|
|
|
* @since 2025-12-29 |
|
|
|
* @since 2025-12-29 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
@Service |
|
|
|
public class MeasuringUpkeepServiceImpl extends BaseServiceImpl<MeasuringUpkeepMapper, MeasuringUpkeepEntity> implements IMeasuringUpkeepService { |
|
|
|
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 |
|
|
|
@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));
|
|
|
|
// return page.setRecords(baseMapper.selectMeasuringUpkeepPage(page, measuringUpkeep));
|
|
|
|
// 1. 创建条件构造器
|
|
|
|
// 1. 创建条件构造器
|
|
|
|
LambdaQueryWrapper<MeasuringUpkeepEntity> wrapper = Wrappers.<MeasuringUpkeepEntity>lambdaQuery(); |
|
|
|
LambdaQueryWrapper<MeasuringUpkeepEntity> wrapper = Wrappers.<MeasuringUpkeepEntity>lambdaQuery(); |
|
|
|
|
|
|
|
|
|
|
|
// 2. 动态添加条件(核心!)
|
|
|
|
// 2. 动态添加条件(核心!)
|
|
|
|
// 根据实体对象 entity 中字段是否为空,来动态拼接WHERE条件
|
|
|
|
// 根据实体对象 entity 中字段是否为空,来动态拼接WHERE条件
|
|
|
|
wrapper.like(Objects.nonNull(measuringUpkeep.getMmCode()), MeasuringUpkeepEntity::getMmCode, measuringUpkeep.getMmCode()); |
|
|
|
wrapper.eq(Objects.nonNull(measuringUpkeep.getStatus()), MeasuringUpkeepEntity::getStatus, measuringUpkeep.getStatus()); |
|
|
|
wrapper.eq(Objects.nonNull(measuringUpkeep.getApprovalStatus()), MeasuringUpkeepEntity::getApprovalStatus, measuringUpkeep.getApprovalStatus()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 3. 执行分页查询
|
|
|
|
// 3. 执行分页查询
|
|
|
|
return baseMapper.selectPage(page, wrapper); |
|
|
|
return baseMapper.selectPage(page, wrapper); |
|
|
|
@ -50,4 +72,66 @@ public class MeasuringUpkeepServiceImpl extends BaseServiceImpl<MeasuringUpkeepM |
|
|
|
return measuringUpkeepList; |
|
|
|
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; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|