From a2ef24e5d60de082204a53e65bff6705e064c61e Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期三, 18 六月 2025 15:37:46 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 76 +++++++++++- src/main/java/com/zy/asrs/service/ReportToThirdService.java | 3 src/main/java/com/zy/nc/vo/InvCountHeaderVO.java | 13 ++ src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java | 127 +++++++++++++++++++++ src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 79 ------------- src/main/java/com/zy/nc/vo/InvCountBodyVO.java | 14 ++ src/main/resources/application.yml | 2 7 files changed, 226 insertions(+), 88 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/ReportToThirdService.java b/src/main/java/com/zy/asrs/service/ReportToThirdService.java index 26af8a2..3a1a8af 100644 --- a/src/main/java/com/zy/asrs/service/ReportToThirdService.java +++ b/src/main/java/com/zy/asrs/service/ReportToThirdService.java @@ -1,6 +1,7 @@ package com.zy.asrs.service; import com.zy.asrs.entity.DocType; +import com.zy.asrs.entity.InventoryCheckOrder; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderDetl; @@ -12,4 +13,6 @@ boolean reportTkrk(String matnr, String batch, String orderNo, Double anfme); + boolean reportCheckOrder(InventoryCheckOrder checkOrder); + } diff --git a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java index 507c554..a32b024 100644 --- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java @@ -6,14 +6,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; -import com.zy.asrs.entity.DocType; -import com.zy.asrs.entity.Order; -import com.zy.asrs.entity.OrderDetl; -import com.zy.asrs.entity.StoreType; -import com.zy.asrs.service.ApiLogService; -import com.zy.asrs.service.OrderService; -import com.zy.asrs.service.ReportToThirdService; -import com.zy.asrs.service.StoreTypeService; +import com.zy.asrs.entity.*; +import com.zy.asrs.service.*; import com.zy.nc.SendUtil; import com.zy.nc.entity.*; import com.zy.nc.service.NccSaleXsfhmxWmsService; @@ -36,9 +30,14 @@ @Autowired private ApiLogService apiLogService; - @Autowired private OrderService orderService; + @Autowired + private WrkDetlService wrkDetlService; + @Autowired + private InventoryCheckOrderService inventoryCheckOrderService; + @Autowired + private InventoryCheckOrderDetlService inventoryCheckOrderDetlService; @Autowired private StoreTypeService storeTypeService; @@ -60,6 +59,9 @@ @Value("${NYNC.saveRefWhsTrans}") private String saveRefWhsTrans; + + @Value("${NYNC.invcountAdd}") + private String invcountAdd; @Value("${NYNC.purchasein}") private String purchasein; @@ -219,6 +221,21 @@ } } + @Override + public boolean reportCheckOrder(InventoryCheckOrder checkOrder) { + Object process1 = processInvcount(checkOrder); + //鍙戦�佽姹� + NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, invcountAdd, JSONObject.toJSONString(process1)); + log.info("鐩樼偣鍗時esponse:{}", response); + if (!Cools.isEmpty(response) && response.isSuccess()) { + log.info("鐩樼偣鍗時esponse:{}", response); + return true; + } else { +// remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); + return false; + } + } + private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) { //缁勮瀵硅薄鏁版嵁 Map<String, Object> data = new HashMap<String, Object>(); @@ -296,6 +313,47 @@ return data; } + private Object processInvcount(InventoryCheckOrder checkOrder) { + List<InventoryCheckOrderDetl> inventoryCheckOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>() + .eq("order_no", checkOrder.getOrderNo())); + if (inventoryCheckOrderDetls.isEmpty()) { + throw new CoolException("鐩樼偣鏄庣粏涓嶅瓨鍦�"); + } + + //缁勮瀵硅薄鏁版嵁 + Map<String, Object> data = new HashMap<String, Object>(); + + //浠撳簱id + String cwarehouseid = null; + List<InvCountBodyVO> invCountBodyVOList = new ArrayList<>(); + for (InventoryCheckOrderDetl inventoryCheckOrderDetl : inventoryCheckOrderDetls) { + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>() + .eq("matnr", inventoryCheckOrderDetl.getMatnr()) + .eq("batch", inventoryCheckOrderDetl.getBatch()) + ); + if (wrkDetls.isEmpty()) { + throw new CoolException("宸ヤ綔妗f槑缁嗕笉瀛樺湪"); + } + + cwarehouseid = wrkDetls.get(0).getStandby1(); + + InvCountBodyVO invCountBodyVO = new InvCountBodyVO(); + invCountBodyVO.setCmaterialoid(inventoryCheckOrderDetl.getMatnr()); + invCountBodyVO.setVbatchcode(inventoryCheckOrderDetl.getBatch()); + invCountBodyVO.setNcountastnum(inventoryCheckOrderDetl.getCheckAnfme()); + invCountBodyVOList.add(invCountBodyVO); + } + + InvCountHeaderVO invCountHeaderVO = new InvCountHeaderVO(); + invCountHeaderVO.setPk_org("FYT"); + invCountHeaderVO.setCtrantypeid("4R-01"); + invCountHeaderVO.setCwarehouseid(cwarehouseid); + + data.put("InvCountHeaderVO", invCountHeaderVO); + data.put("InvCountBodyVO", invCountBodyVOList); + return data; + } + private Object processZKRK(List<OrderDetl> orderDetls) { //缁勮瀵硅薄鏁版嵁 Map<String, Object> data = new HashMap<String, Object>(); diff --git a/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java b/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java new file mode 100644 index 0000000..424577b --- /dev/null +++ b/src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java @@ -0,0 +1,127 @@ +package com.zy.asrs.task; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; +import com.zy.asrs.entity.InventoryCheckOrder; +import com.zy.asrs.entity.InventoryCheckOrderDetl; +import com.zy.asrs.service.InventoryCheckOrderDetlService; +import com.zy.asrs.service.InventoryCheckOrderService; +import com.zy.asrs.service.ReportToThirdService; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Slf4j +@Component +public class ReportInventoryCheckOrdersScheduler { + + @Autowired + private InventoryCheckOrderService inventoryCheckOrderService; + @Autowired + private InventoryCheckOrderDetlService inventoryCheckOrderDetlService; + @Autowired + private ConfigService configService; + @Autowired + private ReportToThirdService reportToThirdService; + + /** + * 涓婃姤鐩樼偣缁撴灉 + */ + @Scheduled(cron = "0/3 * * * * ? ") + public void execute() { + List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>() + .eq("status", 1)); + if (inventoryCheckOrders.isEmpty()) { + return; + } + + for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { + List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo())); + boolean complete = true; + for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) { + if (!checkOrderDetl.getStatus().equals("2")) { + complete = false; + } + } + if (complete) { + boolean result = reportToThirdService.reportCheckOrder(checkOrder); + if (!result) { + continue; + } + + checkOrder.setStatus("2"); + if (!inventoryCheckOrderService.updateById(checkOrder)) { + log.error("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佹垚鍔�", checkOrder.getOrderNo()); + } else { + log.info("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佸け璐�", checkOrder.getOrderNo()); + } + } + } + } + + /** + * 鑷姩鍒犻櫎瓒呰繃1澶╋紝鏃犳槑缁嗙殑鐩樼偣鍗� + */ + @Scheduled(cron = "0/3 * * * * ? ") + public void execute2() { + List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()); + if (inventoryCheckOrders.isEmpty()) { + return; + } + for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { + List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo())); + if (checkOrderDetls.isEmpty() && System.currentTimeMillis() - checkOrder.getCreateTime().getTime() >= 1000 * 60 * 60 * 24) { + if (!inventoryCheckOrderService.deleteById(checkOrder)) { + log.error("鐩樼偣鍗昜orderNo={}]鍒犻櫎澶辫触", checkOrder.getOrderNo()); + } else { + log.info("鐩樼偣鍗昜orderNo={}]鍒犻櫎鎴愬姛", checkOrder.getOrderNo()); + } + } + } + } + +// /** +// * 鑷姩瀹岀粨杈惧埌涓�瀹氭暟閲忕殑鐩樼偣鍗� +// */ +// @Scheduled(cron = "0/30 * * * * ? ") +// public void execute3() { +// List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()); +// if (inventoryCheckOrders.isEmpty()) { +// return; +// } +// int num = 20; +// try { +// Config config = configService.selectConfigByCode("CheckOrderNum"); +// if (Cools.isEmpty(config) || config.getValue().equals("false")) { +// +// } else { +// num = Integer.parseInt(config.getValue()); +// } +// } catch (Exception e) { +// +// } +// for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { +// List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo())); +// boolean complete = true; +// for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) { +// if (!checkOrderDetl.getStatus().equals("2")) { +// complete = false; +// } +// } +// if (complete && checkOrderDetls.size() >= num) { +// checkOrder.setStatus("2"); +// if (!inventoryCheckOrderService.updateById(checkOrder)) { +// log.error("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佹垚鍔�", checkOrder.getOrderNo()); +// } else { +// log.info("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佸け璐�", checkOrder.getOrderNo()); +// } +// } +// } +// } + +} diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java index 5f241c3..59c2a50 100644 --- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java +++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java @@ -1,17 +1,9 @@ package com.zy.asrs.task; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.core.common.Cools; -import com.zy.asrs.entity.InventoryCheckOrder; -import com.zy.asrs.entity.InventoryCheckOrderDetl; import com.zy.asrs.entity.WrkMast; -import com.zy.asrs.service.InventoryCheckOrderDetlService; -import com.zy.asrs.service.InventoryCheckOrderService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.WorkMastHandler; -import com.zy.system.entity.Config; -import com.zy.system.service.ConfigService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -34,17 +26,6 @@ @Autowired private WorkMastHandler workMastHandler; - @Autowired - private InventoryCheckOrderService inventoryCheckOrderService; - - - @Autowired - private InventoryCheckOrderDetlService inventoryCheckOrderDetlService; - - - @Autowired - private ConfigService configService; - @Scheduled(cron = "0/3 * * * * ? ") public void execute() { @@ -60,66 +41,6 @@ wrkMast.setErrorTime(new Date()); if (!wrkMastService.updateById(wrkMast)) { log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo()); - } - } - } - } - - /** - * 鑷姩鍒犻櫎瓒呰繃1澶╋紝鏃犳槑缁嗙殑鐩樼偣鍗� - */ - @Scheduled(cron = "0/3 * * * * ? ") - public void execute2() { - List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()); - if (inventoryCheckOrders.isEmpty()) { - return; - } - for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { - List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo())); - if (checkOrderDetls.isEmpty() && System.currentTimeMillis() - checkOrder.getCreateTime().getTime() >= 1000 * 60 * 60 * 24) { - if (!inventoryCheckOrderService.deleteById(checkOrder)) { - log.error("鐩樼偣鍗昜orderNo={}]鍒犻櫎澶辫触", checkOrder.getOrderNo()); - } else { - log.info("鐩樼偣鍗昜orderNo={}]鍒犻櫎鎴愬姛", checkOrder.getOrderNo()); - } - } - } - } - - /** - * 鑷姩瀹岀粨杈惧埌涓�瀹氭暟閲忕殑鐩樼偣鍗� - */ - @Scheduled(cron = "0/30 * * * * ? ") - public void execute3() { - List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()); - if (inventoryCheckOrders.isEmpty()) { - return; - } - int num = 20; - try { - Config config = configService.selectConfigByCode("CheckOrderNum"); - if (Cools.isEmpty(config) || config.getValue().equals("false")) { - - } else { - num = Integer.parseInt(config.getValue()); - } - } catch (Exception e) { - - } - for (InventoryCheckOrder checkOrder : inventoryCheckOrders) { - List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo())); - boolean complete = true; - for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) { - if (!checkOrderDetl.getStatus().equals("2")) { - complete = false; - } - } - if (complete && checkOrderDetls.size() >= num) { - checkOrder.setStatus("2"); - if (!inventoryCheckOrderService.updateById(checkOrder)) { - log.error("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佹垚鍔�", checkOrder.getOrderNo()); - } else { - log.info("鐩樼偣鍗昜orderNo={}]鏇存柊鐘舵�佸け璐�", checkOrder.getOrderNo()); } } } diff --git a/src/main/java/com/zy/nc/vo/InvCountBodyVO.java b/src/main/java/com/zy/nc/vo/InvCountBodyVO.java new file mode 100644 index 0000000..12b3fb4 --- /dev/null +++ b/src/main/java/com/zy/nc/vo/InvCountBodyVO.java @@ -0,0 +1,14 @@ +package com.zy.nc.vo; + +import lombok.Data; + +@Data +public class InvCountBodyVO { + + private String cmaterialoid;//鐗╂枡 + + private String vbatchcode;//鎵规 + + private Double ncountastnum;//鐩樼偣鏁伴噺 + +} diff --git a/src/main/java/com/zy/nc/vo/InvCountHeaderVO.java b/src/main/java/com/zy/nc/vo/InvCountHeaderVO.java new file mode 100644 index 0000000..7de858b --- /dev/null +++ b/src/main/java/com/zy/nc/vo/InvCountHeaderVO.java @@ -0,0 +1,13 @@ +package com.zy.nc.vo; + +import lombok.Data; + +@Data +public class InvCountHeaderVO { + + // 蹇呭~瀛楁 + private String pk_org; // 搴撳瓨缁勭粐鏈�鏂扮増鏈� + private String cwarehouseid; // 浠撳簱 + private String ctrantypeid; // 鐩樼偣绫诲瀷 + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3525f0a..9c42cc1 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -99,6 +99,8 @@ whstrans: /nccloud/api/ic/whstrans/save #4.2鍏朵粬鍑哄簱鍗曟柊澧� generalout: /nccloud/api/ic/generalout/save + #鐩樼偣鍗曟柊澧� + invcountAdd: /nccloud/api/ic/invcount/save #4.3.鍏朵粬鍏ュ簱鍗曞弬鐓ц浆搴撴柊澧� #saveRefWhsTrans: http://ip:port/nccloud/api/ic/generalin/saveRefWhsTrans #5.1鏂板杞簱鍗� -- Gitblit v1.9.1