Commit 24732be7 by lijingjing

添加发送日志;

修改发送ERP逻辑;
erp路径,从配置中获取;
parent 740d40d9
package com.patzn.cloud.service.lims.hmhj.common;
import com.patzn.cloud.commons.constant.CommonConstants;
import com.patzn.cloud.commons.toolkit.DateUtils;
import com.patzn.cloud.service.lims.hmhj.common.consts.HttpConst;
import com.patzn.cloud.service.lims.hmhj.interceptor.NetworkInterceptor;
import okhttp3.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
......@@ -26,7 +23,7 @@ public class OkHttpUtils {
public static String sendByPostJson(String url, String token, String json) {
logger.error("prepare assemble data : {}", DateUtils.toYearMonthDayTime(new Date()));
logger.error("DO====SEND====DATA==== 准备组装数据。");
RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json);
Request request = new Request.Builder()
.url(url)
......@@ -40,19 +37,21 @@ public class OkHttpUtils {
.newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(120, TimeUnit.SECONDS)
.addNetworkInterceptor(new NetworkInterceptor())
.build();
Response response = null;
try {
logger.error("start execute send data : {}", DateUtils.toYearMonthDayTime(new Date()));
response = client.newCall(request).execute();
assert response.body() != null;
logger.error("DO====SEND====ERPS==== 装备发送了。");
Response response = client.newCall(request).execute();
if (null == response.body()) {
logger.error("SEND====ERP====RESULT==== 响应结果体为空。");
return null;
}
String result = response.body().string();
logger.error("finish response data : {}", DateUtils.toYearMonthDayTime(new Date()));
logger.error("response data :{}", result);
logger.error("GET====ERP====RESULT==== :{}", result);
return result;
} catch (IOException e) {
logger.error("SEND====DATA====EXCEPTION==== :结果响应异常!");
logger.error(e.getMessage());
e.printStackTrace();
}
return null;
......
......@@ -12,10 +12,16 @@ public class HttpConst {
public static final String CONTENT_TYPE = "application/json";
/**
* 本地:"http://api.dev.patzn.com:7000/hmhj/v1/entrust_sample_item/send_data";
* 正式:"http://192.168.0.22/api/LimsData/SaveData";
* 测试:"http://192.168.0.19:5050/api/LimsData/SaveData";
*/
public static final String ERP_URL = "http://192.168.0.19:5050/api/LimsData/SaveData";
public static final String PROD_URL = "http://192.168.0.22/api/LimsData/SaveData";
public static final String TEST_URL = "http://192.168.0.19:5050/api/LimsData/SaveData";
public static final String HOME_URL = "http://api.dev.patzn.com:7000/hmhj/v1/entrust_sample_item/send_data";
/**
* GmHu6SqGdmmtY6Aup5kp1jlWenQz+vzQ6TBN6x/3dOwfNULkTNLx2/QA9Vhq1F7LEEXP6UKzFCxt99srTFd59DjGOgmrDnvVOYBgtSYbSTD2JNeRRD8AKe/v3TW9rWFtOMfGHtTkh6AxbovaSXa99tI5HUInT2wi2xwkdo9DKOQ=
*/
......
......@@ -734,10 +734,10 @@ public class EntrustSampleItemController extends ServiceController {
@ApiOperation(value = "模拟测试发送数据到ERP", notes = "模拟测试发送数据到ERP")
@PostMapping("/send_data")
@Login(action = Action.Skip)
public RestResult<Boolean> sendData(@RequestBody SampleItemVO itemVO) {
public RestResult<SampleItemVO> sendData(@RequestBody SampleItemVO itemVO) {
logger.error(itemVO.getSample_code());
logger.error(itemVO.getBrand());
return RestResult.failed("测试中");
return RestResult.ok(itemVO);
}
@ApiOperation(value = "根据检测项目ID退回原始记录", notes = "根据检测项目ID退回原始记录")
......
......@@ -145,6 +145,10 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
@Value("${libreOffice.url}")
private String libreOfficeUrl;
@Value("${service.erp-url}")
private String erpUrl;
@Autowired
private ILmsOriginalRecordInfoService originalRecordInfoService;
@Autowired
......@@ -1423,49 +1427,61 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
* @param sampleVOList
*/
private void sendTestDataToErp(List<Long> ids) {
logger.error("====>ERP====:{}获取执行的样品IDS;【{}】", DateUtils.toYearMonthDayTime(new Date()), ids.toString());
log("执行发送的样品IDS:" + StringUtils.join(ids, ","));
List<EntrustSample> sampleList = entrustSampleService.getBatchIds(ids);
if (CollectionUtils.isEmpty(sampleList)) {
logger.error("====>ERP====:发送ERP样品数据为空!");
log("数据为空,不发送!");
return;
}
// 只针对原铝和铝成品
String sampleName = sampleList.get(0).getName();
logger.error("====>ERP====:获取样品名称【{}】!", sampleName);
log("样品名称:" + sampleName);
if (!Arrays.asList("原铝", "铝成品").contains(sampleName)) {
logger.error("====>ERP====:不属于原铝和铝成品,不再发送!");
log("非原铝或铝成品,不予发送!");
return;
}
// 获取检测项目指标数据
List<Map<String, Object>> dataList = entrustSampleItemIndexService.listSampleItemIndex(ids);
logger.error("====>ERP====:获取项目和指标数据:{}", JSONArray.toJSON(dataList));
try {
logger.error("{}=====>===:将要发送ERP数据;", DateUtils.toYearMonthDayTime(new Date()));
log("准备发送数据");
doSendErpData(dataList);
} catch (Exception e) {
log("请求失败,请稍后重试!");
logger.error(e.getMessage());
logger.error("{}:发送ERP请求失败,请稍后重试!", DateUtils.toYearMonthDayTime(new Date()));
}
}
private void log(String str) {
logger.error("HMHJ====>ERP===={}....", str);
}
private void doSendErpData(List<Map<String, Object>> dataList) {
logger.error("{}====>ERP==== 开始发送中....");
dataList.forEach(t -> {
String result = OkHttpUtils.sendByPostJson(HttpConst.ERP_URL, HttpConst.ERP_TOKEN, JacksonUtils.toJSONString(t));
logger.error("======>ERP====>result:" + result);
log("开始发送数据");
for (Map<String, Object> data : dataList) {
String json = JSONObject.toJSONString(data);
log("要发送的样品数据为:" + json);
String result = OkHttpUtils.sendByPostJson(erpUrl, HttpConst.ERP_TOKEN, json);
log("发送结果:" + result);
if (StringUtils.isNotBlank(result)) {
JSONObject jsonObject = JSON.parseObject(result);
logger.error("======<ERP>====" + jsonObject.toJSONString());
log("发送JSON响应结果====");
// ==
String flag = jsonObject.getString("flag"), message = jsonObject.getString("message"),
code = jsonObject.getString("code"), msg = jsonObject.getString("msg");
Boolean success = jsonObject.getBoolean("success");
log("响应结果:flag=" + flag);
log("响应结果:message=" + message);
log("响应结果:code=" + code);
log("响应结果:msg=" + msg);
// 若成功 ,则更新标识
if (Objects.equals(jsonObject.getString("code"), "1") && Objects.equals(jsonObject.getBoolean("success"), true)) {
logger.error("{}:====>ERP===>Result===>data,更新本地库是否发送标识!");
entrustSampleService.update(new EntrustSample().setSendErp(1), Condition.create().eq("code", t.get("sample_code")));
if (Objects.equals(flag, "1") || (Objects.equals(code, "1") && success)) {
log("响应成功,更新本地库是否发送标识!");
entrustSampleService.update(new EntrustSample().setSendErp(1), Condition.create().eq("code", data.get("sample_code")));
} else {
logger.error("{}:响应失败:{}", DateUtils.toYearMonthDayTime(new Date()), StringHandleUtils.parse(jsonObject.getString("msg")));
log("响应失败!,错误为:" + msg);
}
}
});
}
}
@Override
......
......@@ -7,6 +7,7 @@ swagger:
service:
api-url: http://api.dev.patzn.com:7000
url: http://api.dev.patzn.com:7000
erp-url: http://192.168.0.19:5050/api/LimsData/SaveData
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
......
......@@ -13,6 +13,7 @@ service:
province-item-url: http://60.216.97.250:8087/
soffice: /opt/libreoffice6.2/program/soffice
static-url: static.hmlims.com:9000
erp-url: http://192.168.0.19:5050/api/LimsData/SaveData
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
......
......@@ -9,6 +9,7 @@ swagger:
service:
api-url: http://api.dev.patzn.com:7000
url: http://api.dev.patzn.com:7000
erp-url: http://192.168.0.19:5050/api/LimsData/SaveData
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment