From 937845aff92af318c48f8f99fe938f26a2960309 Mon Sep 17 00:00:00 2001 From: shenzhouyu Date: Thu, 11 Dec 2025 15:24:38 +0800 Subject: [PATCH] =?UTF-8?q?pda=E9=A2=86=E6=96=99=E9=80=80=E6=96=99?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A8=A1=E7=B3=8A=E6=9F=A5=E8=AF=A2=E6=96=B0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IfsApiIssueAndReturnService.java | 2 ++ .../impl/IfsApiIssueAndReturnServiceImpl.java | 23 +++++++++++++++++++ .../modules/notify/entity/vo/ShopOrderVo.java | 2 ++ .../controller/ProductionIssueController.java | 16 +++++++++++++ .../service/ProductionIssueService.java | 1 + .../impl/ProductionIssueServiceImpl.java | 11 +++++++++ 6 files changed, 55 insertions(+) diff --git a/src/main/java/com/gaotao/modules/api/service/IfsApiIssueAndReturnService.java b/src/main/java/com/gaotao/modules/api/service/IfsApiIssueAndReturnService.java index fafa710..2b3b4c9 100644 --- a/src/main/java/com/gaotao/modules/api/service/IfsApiIssueAndReturnService.java +++ b/src/main/java/com/gaotao/modules/api/service/IfsApiIssueAndReturnService.java @@ -18,6 +18,8 @@ public interface IfsApiIssueAndReturnService { List getWorkOrderInfo(String workOrderNo, String site,String releaseNo,String sequenceNo); + List getShopOrderLine(String workOrderNo, String site); + List getShopOrderMaterial(String workOrderNo, String site,String releaseNo,String sequenceNo); List getIssueForShopOrder(String workOrderNo, String site,String releaseNo,String sequenceNo); diff --git a/src/main/java/com/gaotao/modules/api/service/impl/IfsApiIssueAndReturnServiceImpl.java b/src/main/java/com/gaotao/modules/api/service/impl/IfsApiIssueAndReturnServiceImpl.java index 15975d6..4c6244b 100644 --- a/src/main/java/com/gaotao/modules/api/service/impl/IfsApiIssueAndReturnServiceImpl.java +++ b/src/main/java/com/gaotao/modules/api/service/impl/IfsApiIssueAndReturnServiceImpl.java @@ -115,6 +115,29 @@ public class IfsApiIssueAndReturnServiceImpl implements IfsApiIssueAndReturnServ } } + @Override + public List getShopOrderLine(String workOrderNo, String site){ + try { + Map params = Map.of( + "ifsDBName", ifsDBName, + "domainUserID", domainUserID, + "ifsSiteID", site, + "ifsOrderNo", workOrderNo + ); + ObjectMapper objectMapper = new ObjectMapper(); + String jsonBody = objectMapper.writeValueAsString(params); + String ifsResponse = HttpUtils.doGetWithBody(ifsUrl+"ShopOrderLine",jsonBody,null); + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + List shopOrders = mapper.readValue(ifsResponse, new TypeReference>() { + }); + return shopOrders; + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("获取工单失败"); + } + } + @Override public List getShopOrderMaterial(String workOrderNo, String site,String releaseNo,String sequenceNo){ try { diff --git a/src/main/java/com/gaotao/modules/notify/entity/vo/ShopOrderVo.java b/src/main/java/com/gaotao/modules/notify/entity/vo/ShopOrderVo.java index 1a0fbd6..0ddd20e 100644 --- a/src/main/java/com/gaotao/modules/notify/entity/vo/ShopOrderVo.java +++ b/src/main/java/com/gaotao/modules/notify/entity/vo/ShopOrderVo.java @@ -37,4 +37,6 @@ public class ShopOrderVo { private String objstate; @JsonProperty("close_code_db") private String closeCodeDb; + + private String engChgLevel; } diff --git a/src/main/java/com/gaotao/modules/production/controller/ProductionIssueController.java b/src/main/java/com/gaotao/modules/production/controller/ProductionIssueController.java index 8faf3aa..6830b13 100644 --- a/src/main/java/com/gaotao/modules/production/controller/ProductionIssueController.java +++ b/src/main/java/com/gaotao/modules/production/controller/ProductionIssueController.java @@ -65,6 +65,22 @@ public class ProductionIssueController { } } + /** + * 模糊搜索工单列表(直接发料) + */ + @PostMapping("/getShopOrderLine") + public R getShopOrderLine(@RequestBody DirectIssueDto dto){ + try { + List workOrders = productionIssueService.getShopOrderLine(dto.getWorkOrderNo(), dto.getSite()); + if(workOrders != null && workOrders.size() > 0){ + return R.ok().put("workOrders", workOrders); + } + return R.error("工单不存在"); + } catch (Exception e) { + return R.error(e.getMessage()); + } + } + /** * 获取工单BOM物料列表(直接发料) */ diff --git a/src/main/java/com/gaotao/modules/production/service/ProductionIssueService.java b/src/main/java/com/gaotao/modules/production/service/ProductionIssueService.java index 1f92332..28291d6 100644 --- a/src/main/java/com/gaotao/modules/production/service/ProductionIssueService.java +++ b/src/main/java/com/gaotao/modules/production/service/ProductionIssueService.java @@ -22,6 +22,7 @@ public interface ProductionIssueService { List getWorkOrderInfo(String workOrderNo, String site,String releaseNo,String sequenceNo)throws Exception; + List getShopOrderLine(String workOrderNo, String site)throws Exception; /** * 获取工单BOM物料列表(直接发料) */ diff --git a/src/main/java/com/gaotao/modules/production/service/impl/ProductionIssueServiceImpl.java b/src/main/java/com/gaotao/modules/production/service/impl/ProductionIssueServiceImpl.java index 6231290..7f8e981 100644 --- a/src/main/java/com/gaotao/modules/production/service/impl/ProductionIssueServiceImpl.java +++ b/src/main/java/com/gaotao/modules/production/service/impl/ProductionIssueServiceImpl.java @@ -98,6 +98,17 @@ public class ProductionIssueServiceImpl implements ProductionIssueService { return shopOrderVos; } + @Override + public List getShopOrderLine(String workOrderNo, String site) throws Exception{ + List orderInfo = ifsApiIssueAndReturnService.getShopOrderLine(workOrderNo, site); + Set allowedStatuses = new HashSet<>(Arrays.asList("Released", "Reserved", "Started")); + List shopOrderVos = orderInfo.stream().filter(item -> allowedStatuses.contains(item.getObjstate())).collect(Collectors.toList()); + if(orderInfo.size() >0 && shopOrderVos.size() == 0){ + throw new XJException("工单"+workOrderNo+"状态不允许发料"); + } + return shopOrderVos; + } + @Override public List getWorkOrderMaterials(String workOrderNo, String site,String releaseNo,String sequenceNo)throws Exception{ // 验证工单状态