src/main/java/com/zy/asrs/service/ReportToThirdService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/nc/vo/InvCountBodyVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/nc/vo/InvCountHeaderVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); } 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("盘点单response:{}", response); if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("盘点单response:{}", 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("工作档明细不存在"); } 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>(); src/main/java/com/zy/asrs/task/ReportInventoryCheckOrdersScheduler.java
New file @@ -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()); // } // } // } // } } 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()); } } } src/main/java/com/zy/nc/vo/InvCountBodyVO.java
New file @@ -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;//盘点数量 } src/main/java/com/zy/nc/vo/InvCountHeaderVO.java
New file @@ -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; // 盘点类型 } 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新增转库单