From d2e644b74bcfe82fd78a6e6a4626357ab2263622 Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Wed, 27 Dec 2023 19:05:14 +0800 Subject: [PATCH] =?UTF-8?q?OA=20ZL0010-=E6=9D=A5=E6=96=99=E6=A3=80?= =?UTF-8?q?=E9=AA=8C=E4=B8=8D=E5=90=88=E6=A0=BC=E6=8E=A7=E5=88=B6=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/RemoteOpenService.java | 20 ++++++ .../factory/RemoteOpenFallbackFactory.java | 24 +++++++ .../op/open/controller/OpenController.java | 16 ++++- .../java/com/op/open/service/OpenService.java | 3 + .../op/open/service/impl/OpenServiceImpl.java | 70 ++++++++++++++++--- 5 files changed, 122 insertions(+), 11 deletions(-) create mode 100644 op-api/op-api-system/src/main/java/com/op/system/api/RemoteOpenService.java create mode 100644 op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteOpenFallbackFactory.java diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteOpenService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteOpenService.java new file mode 100644 index 00000000..aca0f5e1 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteOpenService.java @@ -0,0 +1,20 @@ +package com.op.system.api; + +import com.op.common.core.constant.ServiceNameConstants; +import com.op.common.core.web.domain.AjaxResult; +import com.op.system.api.factory.RemoteOpenFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * Open接口服务 + * + * @author OP + */ +@FeignClient(contextId = "remoteOpenService", value = ServiceNameConstants.OPEN_SERVICE, fallbackFactory = RemoteOpenFallbackFactory.class) +public interface RemoteOpenService { + /**提交ZL0010-来料检验不合格控制流程**/ + @PostMapping("/openInterface/OAInspection") + public AjaxResult OAInspection(); + +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteOpenFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteOpenFallbackFactory.java new file mode 100644 index 00000000..6b19b389 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteOpenFallbackFactory.java @@ -0,0 +1,24 @@ +package com.op.system.api.factory; + + +import com.op.common.core.web.domain.AjaxResult; +import com.op.system.api.RemoteOpenService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +@Component +public class RemoteOpenFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteOpenFallbackFactory.class); + @Override + public RemoteOpenService create(Throwable throwable) { + log.error("Open服务调用失败:{}", throwable.getMessage()); + return new RemoteOpenService() { + @Override + public AjaxResult OAInspection() { + return AjaxResult.error("提交ZL0010-来料检验不合格控制流程失败"+throwable.getMessage()); + } + }; + } +} diff --git a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java index 125378e7..f6aaf53c 100644 --- a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java +++ b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java @@ -16,6 +16,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; +import java.util.Map; + /** * mes上位机专属 * @@ -113,7 +116,16 @@ public class OpenController extends BaseController { return success(openService.insertQcCheckTaskProduce(qcCheckTaskProduce)); } - public static void main(String args[]){ - System.out.println(DateUtils.getDate()); + + /** + * ZL0010-来料检验不合格控制流程提交 + * @param paramMap + * @return + */ + @PostMapping("/OAInspection") + public AjaxResult OAInspection(@RequestBody(required = false) Map paramMap) { + return openService.OAInspection(paramMap); } + + } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java b/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java index 373496e7..38b03033 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java @@ -9,6 +9,7 @@ import com.op.system.api.domain.quality.QcCheckTaskDTO; import com.op.system.api.domain.quality.QcCheckTaskProduceDTO; import java.util.List; +import java.util.Map; /** * 订单Service接口 @@ -27,4 +28,6 @@ public interface OpenService { AjaxResult machineRepair(EquRepairOrderDTO equRepairOrderDTO); int insertQcCheckTaskProduce(QcCheckTaskProduceDTO qcCheckTaskProduce); + + AjaxResult OAInspection(Map paramMap); } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index d1ecd5f1..6146efff 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -4,10 +4,14 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.op.common.core.constant.Constants; import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.bean.BeanUtils; +import com.op.common.core.utils.http.HttpUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; @@ -30,22 +34,22 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; +import java.io.IOException; import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; +import static com.op.common.core.web.domain.AjaxResult.error; import static com.op.common.core.web.domain.AjaxResult.success; /** @@ -57,9 +61,12 @@ import static com.op.common.core.web.domain.AjaxResult.success; @Service public class OpenServiceImpl implements OpenService { protected Logger logger = LoggerFactory.getLogger(getClass()); + @Value("${OA.url}") + private String oa_url; @Autowired private OpenMapper openMapper; + // @Autowired // private RemoteSapService remoteSapService; @@ -352,12 +359,57 @@ public class OpenServiceImpl implements OpenService { return openMapper.addBatch(items); } + @Override + public AjaxResult OAInspection(Map paramMap) { - public static void main(String args[]){ - DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - LocalDate today = LocalDate.now(); - LocalDate lastMonth3 = today.plus(-3, ChronoUnit.MONTHS); + try { + + String result = HttpUtils.sendPostOA(oa_url, convertJsonToUrlParams(JSONObject.toJSONString(paramMap))); + System.out.println(result); + //返回示例{"result":"0","info":"成功","requestid":"2193799"} + Map resultMap=JSONObject.parseObject(result); + if (resultMap.get("result").equals(Constants.LOGIN_SUCCESS_STATUS)){ + return success(resultMap.get("info").toString(),resultMap.get("requestid").toString()); + }else { + return error(resultMap.get("info").toString()); + } + + } catch (Exception e) { + e.printStackTrace(); + return error(e.getMessage()); + } + } + + public static String convertJsonToUrlParams(String json) throws IOException { + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode jsonNode = objectMapper.readTree(json); - System.out.println("7天之前的日期为:"+lastMonth3.getYear()); + StringBuilder urlParams = new StringBuilder(); + + Iterator fieldNames = jsonNode.fieldNames(); + while (fieldNames.hasNext()) { + String fieldName = fieldNames.next(); + JsonNode fieldValue = jsonNode.get(fieldName); + + if (urlParams.length() > 0) { + urlParams.append("&"); + } + + urlParams.append(fieldName).append("=").append(fieldValue); + } + + return urlParams.toString(); + } + public static void main(String args[]){ + Map paramMap =new HashMap<>(); + paramMap.put("A","B"); + paramMap.put("C","D"); + paramMap.put("E","F"); + System.out.println(JSONObject.toJSONString(paramMap)); +// DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// LocalDate today = LocalDate.now(); +// LocalDate lastMonth3 = today.plus(-3, ChronoUnit.MONTHS); +// +// System.out.println("7天之前的日期为:"+lastMonth3.getYear()); } }