Browse Source

2024年5月24日16:11:14

纪新园 1 year ago
parent
commit
fffae22838

+ 26 - 4
blade-service/blade-data/src/main/java/org/springblade/data/handler/SynchronizeDataJobHandler.java

@@ -1,10 +1,11 @@
 package org.springblade.data.handler;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.AllArgsConstructor;
-import org.springblade.core.tool.api.R;
 import org.springblade.data.michelinApi.service.IMichelinService;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -13,15 +14,36 @@ public class SynchronizeDataJobHandler {
 
 	private final IMichelinService michelinService;
 
+	private final RedisTemplate<String, Object> redisTemplate;
+
 	/**
 	 * @throws Exception
 	 */
 	@XxlJob("synchronizeDataJobHandler")
-	public ReturnT<String> synchronizeDataJobHandler(String param) throws Exception {
+	public ReturnT<String> synchronizeDataJobHandler(String param) {
 		System.out.println("==========================请求成功================================");
-		R<String> res = michelinService.getSalesOrder(param);
 		ReturnT<String> returnT = new ReturnT<>();
-		returnT.setMsg(res.getData());
+		try {
+			if (Boolean.TRUE.equals(redisTemplate.hasKey("MIQIL_STATUS"))) {
+				Object status = redisTemplate.opsForValue().get("MIQIL_STATUS");
+				if (ObjectUtils.isNotNull(status) && "true".equals(status)) {
+					returnT.setMsg("有未完成任务");
+				} else {
+					redisTemplate.opsForValue().set("MIQIL_STATUS", "true");
+					String res = michelinService.getSalesOrder(param);
+					returnT.setMsg(res);
+				}
+			} else {
+				redisTemplate.opsForValue().set("MIQIL_STATUS", "true");
+				String res = michelinService.getSalesOrder(param);
+				returnT.setMsg(res);
+			}
+		} catch (Exception e) {
+			redisTemplate.opsForValue().set("MIQIL_STATUS", "false");
+			returnT.setMsg(e.getMessage());
+		} finally {
+			redisTemplate.opsForValue().set("MIQIL_STATUS", "false");
+		}
 		return returnT;
 	}
 

+ 1 - 1
blade-service/blade-data/src/main/java/org/springblade/data/michelinApi/controller/ApiController.java

@@ -26,7 +26,7 @@ public class ApiController {
 	 */
 	@GetMapping("/getSalesOrder")
 	public R getSalesOrder(String agentId) throws Exception{
-		return michelinService.getSalesOrder(agentId);
+		return R.success(michelinService.getSalesOrder(agentId));
 	}
 
 }

+ 1 - 1
blade-service/blade-data/src/main/java/org/springblade/data/michelinApi/service/IMichelinService.java

@@ -11,5 +11,5 @@ public interface IMichelinService {
 	 * 订单读取接口
 	 * @param agentId  Agent代码
 	 */
-	R<String> getSalesOrder(String agentId)throws Exception;
+	String getSalesOrder(String agentId)throws Exception;
 }

+ 79 - 80
blade-service/blade-data/src/main/java/org/springblade/data/michelinApi/service/impl/MichelinServiceImpl.java

@@ -14,6 +14,7 @@ import org.springblade.data.michelinApi.dto.LinesDto;
 import org.springblade.data.michelinApi.dto.SalesOrderDto;
 import org.springblade.data.michelinApi.dto.SalesOrderR;
 import org.springblade.data.michelinApi.service.IMichelinService;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
@@ -32,100 +33,98 @@ public class MichelinServiceImpl implements IMichelinService {
 	private final IExternalOrderService externalOrderService;
 
 
-	public static int count = 1;
-
 	@Override
-	public R<String> getSalesOrder(String agentId) throws Exception {
-		String geturl = MichelinValues.BASE_URL_DEV + "/GetSalesOrder";
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-		//设置请求体
-		Map<String, String> map = new HashMap<>();
-		//key-value的形式设置请求参数
-		map.put("agentId", agentId);
-		String result = HttpsUtils.sending(geturl, map);
-		System.out.println("==============result===============" + result);
-		System.out.println("==============请求成功时间:===============" + sdf.format(new Date()));
-		//如果返回值是标准的JSON字符串进行转换
-		JSONObject jsonObject = JSONObject.parseObject(result);
-		SalesOrderR salesOrderR = JSONObject.parseObject(jsonObject.get("response").toString(), SalesOrderR.class);
-		if (salesOrderR != null) {
-			if ("001".equals(salesOrderR.getCode())) {
-				SalesOrderDto salesOrderDto = salesOrderR.getSalesOrder();
-				if (salesOrderDto != null) {
-					String dateString = "2024-05-12 00:00:00";
-					boolean res = false;
-					if (ObjectUtils.isNotNull(salesOrderDto.getCreationTime())) {
-						Date date = sdf.parse(dateString);
-						Date date1 = sdf.parse(salesOrderDto.getCreationTime());
-						if (date1.compareTo(date) > 0) {
-							if (!salesOrderDto.getLines().isEmpty()) {
-								for (LinesDto item : salesOrderDto.getLines()) {
-									ExternalOrder order = new ExternalOrder();
-									BeanUtil.copyProperties(salesOrderDto, order);
-									order.setItemLineNo(item.getLineNo());
-									order.setSku(item.getSku());
-									order.setName(item.getName());
-									order.setBrand(item.getBrand());
-									order.setItemSize(item.getSize());
-									order.setPattern(item.getPattern());
-									order.setStructure(item.getStructure());
-									order.setUom(item.getUom());
-									order.setQuantity(item.getQuantity());
-									order.setUnitPrice(item.getUnitPrice());
-									if (ObjectUtils.isNotNull(order.getSalesOrderStatus()) && "confirm".equals(order.getSalesOrderStatus())) {
-										res = externalOrderService.save(order);
-										System.out.println("==============保存数据是否成功:===============" + res);
-									} else {
-										res = false;
-										System.out.println("==============状态废弃数据:===============" + order);
+	public String getSalesOrder(String agentId) throws Exception {
+			String geturl = MichelinValues.BASE_URL_DEV + "/GetSalesOrder";
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			//设置请求体
+			Map<String, String> map = new HashMap<>();
+			//key-value的形式设置请求参数
+			map.put("agentId", agentId);
+			String result = HttpsUtils.sending(geturl, map);
+			System.out.println("==============result===============" + result);
+			System.out.println("==============请求成功时间:===============" + sdf.format(new Date()));
+			//如果返回值是标准的JSON字符串进行转换
+			JSONObject jsonObject = JSONObject.parseObject(result);
+			SalesOrderR salesOrderR = JSONObject.parseObject(jsonObject.get("response").toString(), SalesOrderR.class);
+			if (salesOrderR != null) {
+				if ("001".equals(salesOrderR.getCode())) {
+					SalesOrderDto salesOrderDto = salesOrderR.getSalesOrder();
+					if (salesOrderDto != null) {
+						String dateString = "2024-05-12 00:00:00";
+						boolean res = false;
+						if (ObjectUtils.isNotNull(salesOrderDto.getCreationTime())) {
+							Date date = sdf.parse(dateString);
+							Date date1 = sdf.parse(salesOrderDto.getCreationTime());
+							if (date1.compareTo(date) > 0) {
+								if (!salesOrderDto.getLines().isEmpty()) {
+									for (LinesDto item : salesOrderDto.getLines()) {
+										ExternalOrder order = new ExternalOrder();
+										BeanUtil.copyProperties(salesOrderDto, order);
+										order.setItemLineNo(item.getLineNo());
+										order.setSku(item.getSku());
+										order.setName(item.getName());
+										order.setBrand(item.getBrand());
+										order.setItemSize(item.getSize());
+										order.setPattern(item.getPattern());
+										order.setStructure(item.getStructure());
+										order.setUom(item.getUom());
+										order.setQuantity(item.getQuantity());
+										order.setUnitPrice(item.getUnitPrice());
+										if (ObjectUtils.isNotNull(order.getSalesOrderStatus()) && "confirm".equals(order.getSalesOrderStatus())) {
+											res = externalOrderService.save(order);
+											System.out.println("==============保存数据是否成功:===============" + res);
+										} else {
+											res = false;
+											System.out.println("==============状态废弃数据:===============" + order);
+										}
 									}
 								}
+							} else {
+								System.out.println("==============超时废弃数据:===============" + salesOrderDto);
 							}
+						}
+						//设置请求体
+						Map<String, String> map1 = new HashMap<>();
+						//key-value的形式设置请求参数
+						map1.put("agentId", agentId);
+						map1.put("msgId", salesOrderR.getMsgId());
+						String geturl1 = MichelinValues.BASE_URL_DEV + "/AckSalesOrder";
+						if (res) {
+							map1.put("code", "001");
+							map1.put("result", "success");
+							map1.put("errMsg", "");
 						} else {
-							System.out.println("==============超时废弃数据:===============" + salesOrderDto);
+							map1.put("code", "002");
+							map1.put("result", "error");
+							map1.put("errMsg", "数据处理失败");
 						}
-					}
-					//设置请求体
-					Map<String, String> map1 = new HashMap<>();
-					//key-value的形式设置请求参数
-					map1.put("agentId", agentId);
-					map1.put("msgId", salesOrderR.getMsgId());
-					String geturl1 = MichelinValues.BASE_URL_DEV + "/AckSalesOrder";
-					if (res) {
-						map1.put("code", "001");
-						map1.put("result", "success");
-						map1.put("errMsg", "");
-					} else {
-						map1.put("code", "002");
-						map1.put("result", "error");
-						map1.put("errMsg", "数据处理失败");
-					}
-					//获取了返回值
-					String result1 = HttpsUtils.sending(geturl1, map1);
-					System.out.println("==============回调接口返回数据===============" + result1);
-					//如果返回值是标准的JSON字符串进行转换
-					JSONObject jsonObject1 = JSONObject.parseObject(result1);
-					AckSalesOrderR ackSalesOrderR = JSONObject.parseObject(jsonObject1.get("response").toString(), AckSalesOrderR.class);
-					if (ackSalesOrderR != null) {
-						if ("001".equals(ackSalesOrderR.getCode())) {
-							if ("true".equals(ackSalesOrderR.getHasNext())) {
-								this.getSalesOrder(agentId);
+						//获取了返回值
+						String result1 = HttpsUtils.sending(geturl1, map1);
+						System.out.println("==============回调接口返回数据===============" + result1);
+						//如果返回值是标准的JSON字符串进行转换
+						JSONObject jsonObject1 = JSONObject.parseObject(result1);
+						AckSalesOrderR ackSalesOrderR = JSONObject.parseObject(jsonObject1.get("response").toString(), AckSalesOrderR.class);
+						if (ackSalesOrderR != null) {
+							if ("001".equals(ackSalesOrderR.getCode())) {
+								if ("true".equals(ackSalesOrderR.getHasNext())) {
+									this.getSalesOrder(agentId);
+								}
+								return "同步成功";
+							} else {
+								return ackSalesOrderR.getErrMsg();
 							}
-							return R.success("同步成功");
 						} else {
-							return R.fail(ackSalesOrderR.getErrMsg());
+							return "订单回执接口错误";
 						}
 					} else {
-						return R.fail("订单回执接口错误");
+						return "单据信息为空";
 					}
 				} else {
-					return R.fail("单据信息为空");
+					return "获取数据错误";
 				}
 			} else {
-				return R.fail("获取数据错误");
+				return "获取数据错误";
 			}
-		} else {
-			return R.fail("获取数据错误");
-		}
 	}
 }