Commit 2ac19b73 by lijingjing

发送ERP添加日志

parent be0f3475
...@@ -1402,16 +1402,16 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -1402,16 +1402,16 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
Map<Long, String> finalSampleBrandMap = sampleBrandMap; Map<Long, String> finalSampleBrandMap = sampleBrandMap;
executor1.execute(() -> { executor1.execute(() -> {
// 处理正常的报告文件 // 处理正常的报告文件
handleSampleBrand(ids, finalSampleBrandMap, false); handleSampleBrand(ids, finalSampleBrandMap, false);
// 处理一级编码的报告文件 // 处理一级编码的报告文件
handleSampleBrand(ids, finalSampleBrandMap, true); handleSampleBrand(ids, finalSampleBrandMap, true);
// 针对铝成品和原铝进行发送ERP数据处理
sendTestDataToErp(Arrays.asList(ids));
}); });
// 针对铝成品和原铝进行发送ERP数据处理
logger.error("{}开始执行发送ERP请求;", DateUtils.toYearMonthDayTime(new Date()));
sendTestDataToErp(Arrays.asList(ids));
logger.error("======================质量判定结束========================"); logger.error("======================质量判定结束========================");
return true; return true;
} }
...@@ -1422,26 +1422,33 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -1422,26 +1422,33 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
* @param sampleVOList * @param sampleVOList
*/ */
private void sendTestDataToErp(List<Long> ids) { private void sendTestDataToErp(List<Long> ids) {
logger.error("====>ERP====:{}获取执行的样品IDS;【{}】", DateUtils.toYearMonthDayTime(new Date()), ids.toString());
List<EntrustSample> sampleList = entrustSampleService.getBatchIds(ids); List<EntrustSample> sampleList = entrustSampleService.getBatchIds(ids);
if (CollectionUtils.isEmpty(sampleList)) { if (CollectionUtils.isEmpty(sampleList)) {
logger.error("====>ERP====:发送ERP样品数据为空!");
return; return;
} }
// 只针对原铝和铝成品 // 只针对原铝和铝成品
String sampleName = sampleList.get(0).getName(); String sampleName = sampleList.get(0).getName();
logger.error("====>ERP====:获取样品名称【{}】!", sampleName);
if (!Arrays.asList("原铝", "铝成品").contains(sampleName)) { if (!Arrays.asList("原铝", "铝成品").contains(sampleName)) {
logger.error("====>ERP====:不属于原铝和铝成品,不再发送!");
return; return;
} }
// 获取检测项目指标数据 // 获取检测项目指标数据
List<SampleItemVO> dataList = entrustSampleItemIndexService.listSampleItemIndex(ids); List<SampleItemVO> dataList = entrustSampleItemIndexService.listSampleItemIndex(ids);
logger.error("====>ERP====:获取项目和指标数据:{}", JSONArray.toJSON(dataList));
String suffix = sampleName + ids.get(0) + dataList.size(); String suffix = sampleName + ids.get(0) + dataList.size();
// 通信 // 通信
String sampleConnectKey = "SAMPLE_CONNECT_COUNT_KEY" + suffix; String sampleConnectKey = "SAMPLE_CONNECT_COUNT_KEY" + suffix;
try { try {
logger.error("{}=====>===:将要发送ERP数据;", DateUtils.toYearMonthDayTime(new Date()));
doSendErpData(ids, dataList); doSendErpData(ids, dataList);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
logger.error("{}:发送ERP请求失败,请稍后重试!", DateUtils.toYearMonthDayTime(new Date())); logger.error("{}:发送ERP请求失败,请稍后重试!", DateUtils.toYearMonthDayTime(new Date()));
try { try {
logger.error("{}====>ERP===:处理失败的数据", DateUtils.toYearMonthDayTime(new Date()));
dealFailureRequest(ids, dataList, sampleConnectKey); dealFailureRequest(ids, dataList, sampleConnectKey);
} catch (Exception ex) { } catch (Exception ex) {
logger.error("{}:重试后失败,发送结束。错误内容:", DateUtils.toYearMonthDayTime(new Date()), ex.getMessage()); logger.error("{}:重试后失败,发送结束。错误内容:", DateUtils.toYearMonthDayTime(new Date()), ex.getMessage());
...@@ -1450,11 +1457,15 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -1450,11 +1457,15 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} }
private void doSendErpData(List<Long> ids, List<SampleItemVO> dataList) { private void doSendErpData(List<Long> ids, List<SampleItemVO> dataList) {
logger.error("{}====>ERP==== 开始发送中....");
String result = OkHttpUtils.sendByPostJson(HttpConst.ERP_URL, HttpConst.ERP_TOKEN, JacksonUtils.toJSONString(dataList)); String result = OkHttpUtils.sendByPostJson(HttpConst.ERP_URL, HttpConst.ERP_TOKEN, JacksonUtils.toJSONString(dataList));
logger.error("======>ERP====>result:" + result);
if (StringUtils.isNotBlank(result)) { if (StringUtils.isNotBlank(result)) {
JSONObject jsonObject = JSON.parseObject(result); JSONObject jsonObject = JSON.parseObject(result);
logger.error("======<ERP>====" + jsonObject.toJSONString());
// 若成功 ,则更新标识 // 若成功 ,则更新标识
if (Objects.equals(jsonObject.getString("code"), "1") && Objects.equals(jsonObject.getBoolean("success"), true)) { 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().in("ids", ids)); entrustSampleService.update(new EntrustSample().setSendErp(1), Condition.create().in("ids", ids));
} else { } else {
logger.error("{}:响应失败:{}", DateUtils.toYearMonthDayTime(new Date()), StringHandleUtils.parse(jsonObject.getString("msg"))); logger.error("{}:响应失败:{}", DateUtils.toYearMonthDayTime(new Date()), StringHandleUtils.parse(jsonObject.getString("msg")));
...@@ -1465,23 +1476,31 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI ...@@ -1465,23 +1476,31 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
private void dealFailureRequest(List<Long> ids, List<SampleItemVO> dataList, String sampleFlagKey) throws InterruptedException { private void dealFailureRequest(List<Long> ids, List<SampleItemVO> dataList, String sampleFlagKey) throws InterruptedException {
Integer retryCount = 0; Integer retryCount = 0;
// //
logger.error("====>ERP===:开始处理失败的数据!");
String retryCountStr = RedisUtil.StringOps.get(sampleFlagKey); String retryCountStr = RedisUtil.StringOps.get(sampleFlagKey);
String sampleFailureIdsKey = "SAMPLE_FAILURE_IDS_KEY"; String sampleFailureIdsKey = "SAMPLE_FAILURE_IDS_KEY";
logger.error("====>ERP====:获取重试次数:" + retryCountStr);
if (Objects.isNull(retryCountStr) || (retryCount = Integer.parseInt(retryCountStr)) < 4) { if (Objects.isNull(retryCountStr) || (retryCount = Integer.parseInt(retryCountStr)) < 4) {
logger.error("====>ERP===:满足重试机制限制数量!");
RedisUtil.StringOps.set(sampleFlagKey, retryCount + 1 + ""); RedisUtil.StringOps.set(sampleFlagKey, retryCount + 1 + "");
Thread.sleep(10000); Thread.sleep(10000);
executor1.execute(() -> { executor1.execute(() -> {
logger.error("{} =====>==== 另开线程:再次执行发送操作!", DateUtils.toYearMonthDayTime(new Date()));
doSendErpData(ids, dataList); doSendErpData(ids, dataList);
}); });
logger.error("{}:处理之前发送失败的请求:{},嘀嘀嘀!", DateUtils.toYearMonthDayTime(new Date()), sampleFailureIdsKey);
// 对于那些已经失败的请求,重试 // 对于那些已经失败的请求,重试
if (RedisUtil.KeyOps.hasKey(sampleFailureIdsKey)) { if (RedisUtil.KeyOps.hasKey(sampleFailureIdsKey)) {
List<String> idList = RedisUtil.ListOps.lWholeList(sampleFailureIdsKey); List<String> idList = RedisUtil.ListOps.lWholeList(sampleFailureIdsKey);
logger.error("{}:处理之前发送失败的请求,获取IDS:{}", DateUtils.toYearMonthDayTime(new Date()), idList.toString());
RedisUtil.KeyOps.delete(sampleFailureIdsKey); RedisUtil.KeyOps.delete(sampleFailureIdsKey);
if (CollectionUtils.isNotEmpty(idList)) { if (CollectionUtils.isNotEmpty(idList)) {
logger.error("失败的请求不为空,继续处理数据;");
List<Long> sampleIds = idList.stream().map(Long::parseLong).collect(Collectors.toList()); List<Long> sampleIds = idList.stream().map(Long::parseLong).collect(Collectors.toList());
Thread.sleep(5000); Thread.sleep(5000);
executor1.execute(() -> { executor1.execute(() -> {
logger.error("{} =====>==== 另开线程:处理之前的数据进行发送操作!", DateUtils.toYearMonthDayTime(new Date()));
doSendErpData(ids, dataList); doSendErpData(ids, dataList);
}); });
} }
......
...@@ -652,7 +652,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe ...@@ -652,7 +652,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return new ArrayList<>(); return new ArrayList<>();
} }
return list.stream().map(t -> t.getId()).collect(Collectors.toList()); return list.stream().map(EntrustSample::getId).collect(Collectors.toList());
} }
@Override @Override
......
...@@ -460,18 +460,16 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -460,18 +460,16 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
if (null == entrust.getMaterialId()) { if (null == entrust.getMaterialId()) {
entrust.setMaterialId(sampleDTOList.get(0).getMaterialId()); entrust.setMaterialId(sampleDTOList.get(0).getMaterialId());
} }
if (saveEntrust(entrust)) { saveEntrust(entrust);
if (CollectionUtils.isNotEmpty(saveSampleList)) {
if (CollectionUtils.isNotEmpty(saveSampleList)) { entrustSampleService.saveBatch(saveSampleList);
entrustSampleService.saveBatch(saveSampleList); }
} if (CollectionUtils.isNotEmpty(saveEntrustSampleItemList)) {
if (CollectionUtils.isNotEmpty(saveEntrustSampleItemList)) { entrustSampleItemService.saveBatch(saveEntrustSampleItemList);
entrustSampleItemService.saveBatch(saveEntrustSampleItemList);
}
// 更新备样entrust_id字段
entrustSampleBackupService.updateEntrustId(entrust.getId(), contractSampleIds);
} }
// 更新备样entrust_id字段
entrustSampleBackupService.updateEntrustId(entrust.getId(), contractSampleIds);
} }
return true; return true;
} }
...@@ -1234,9 +1232,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust> ...@@ -1234,9 +1232,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean backFromReceive(Long[] ids, Account account, String reason) { public boolean backFromReceive(Long[] ids, Account account, String reason) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托"); RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要驳回的委托");
int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.TEST)); // int count = super.count(Condition.create().in("id", ids).eq("status", EntrustStatusEnum.TEST));
RestAssert.fail(ids.length != count, "请选择要退回至登记的委托"); // RestAssert.fail(ids.length != count, "请选择要退回至登记的委托");
List<Entrust> entrustList = getBatchIds(Arrays.asList(ids)); List<Entrust> entrustList = getBatchIds(Arrays.asList(ids));
RestAssert.fail(CollectionUtils.isEmpty(entrustList), "请选择要驳回的委托");
List<Long> sendUidList = new ArrayList<>(); List<Long> sendUidList = new ArrayList<>();
for (Entrust e : entrustList) { for (Entrust e : entrustList) {
e.setStatus(EntrustStatusEnum.DRAFT); e.setStatus(EntrustStatusEnum.DRAFT);
......
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