From df11218af96a29e69221078ad981737068acc435 Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期三, 10 九月 2025 13:18:25 +0800 Subject: [PATCH] #自动下发分拣线单据, 自动分配余料至同一站口,同一标记 --- src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java b/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java index f47d516..d062204 100644 --- a/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java +++ b/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java @@ -1,16 +1,91 @@ package com.zy.asrs.task; +import com.alibaba.fastjson.JSON; +import com.zy.asrs.entity.BasArmRules; +import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.entity.param.OrderToLine; +import com.zy.asrs.service.BasArmRulesService; +import com.zy.asrs.service.OrderDetlService; +import com.zy.asrs.service.OrderService; +import com.zy.asrs.service.impl.OrderDetlServiceImpl; +import com.zy.asrs.task.core.ReturnT; +import com.zy.asrs.task.handler.OrderToLineHandler; 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.ArrayList; +import java.util.List; @Slf4j @Component //璁㈠崟涓嬪彂鑷冲垎鎷g嚎 public class OrderToSortLineScheduler { + @Autowired + private OrderService orderService; + @Autowired + private OrderDetlService orderDetlService; + @Autowired + private BasArmRulesService basArmRulesService; + @Autowired + private OrderToLineHandler orderToLineHandler; -// @Scheduled(cron = "0/3 * * * * ? ") + + // @Scheduled(cron = "0/3 * * * * ? ") private void orderToSortLine() { + //鑾峰彇鏈笅鍙戝崟鎹� + List<String> orderNos = orderService.AllStatusSatisfyOrder(0); + for (String orderNo : orderNos) { + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(orderNo); + OrderToLine orderToLine = new OrderToLine(); + orderToLine.setOrderNo(orderNo); + orderToLine.setCreateTime(System.currentTimeMillis()); + + Long bindingTag = System.currentTimeMillis();//娣锋惌鏍囪 + + List<OrderToLine.MatList> matLists = new ArrayList<>(); + for (OrderDetl orderDetl : orderDetls) { + Integer number = basArmRulesService.getNumber(orderDetl.getWeight(),orderDetl.getVolume(),orderDetl.getManLength(),orderDetl.getWidth(),orderDetl.getHeight()); + Double anfme = orderDetl.getAnfme(); + Double remainder = anfme % number; //鍙栦綑 浣欐暟娣锋惌 + if(remainder != 0){ + // 缁勮鐗╂枡淇℃伅 + OrderToLine.MatList matMix = new OrderToLine.MatList( + orderDetl.getMatnr(), // matnr -> sku + orderDetl.getSupp(), // supp -> po + remainder, //浣欐枡 + orderDetl.getBarcode(), //barcode -> upc + 1, + orderDetl.getOrigin(), //origin -> supplier 璐ф簮 + bindingTag //浣欐枡鏍囪鐩稿悓 + ); + matLists.add(matMix); + } + Double ctns = anfme - remainder; + // 缁勮鐗╂枡淇℃伅 + OrderToLine.MatList mat = new OrderToLine.MatList( + orderDetl.getMatnr(), // matnr -> sku + orderDetl.getSupp(), // supp -> po + ctns, //鏁存枡 + orderDetl.getBarcode(), //barcode -> upc + 1, + orderDetl.getOrigin(), //origin -> supplier 璐ф簮 + System.currentTimeMillis() + ); + matLists.add(mat); + } + orderToLine.setMatList(matLists); + try{ + ReturnT<String> returnT = orderToLineHandler.start(orderToLine); + if (!returnT.isSuccess()) { + log.error("涓嬪彂鍗曟嵁澶辫触===>"+ JSON.toJSON(orderToLine)); + } + } catch (Exception e){ + log.error("涓嬪彂鍗曟嵁寮傚父===>"+e.getMessage()); + } + + } } -- Gitblit v1.9.1