自动化立体仓库 - WMS系统
#
lsh
2024-12-16 ddb9f9d61b9125651c08fc460b5e499950531f24
#
17个文件已修改
281 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MobileController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WaitPakinController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -235,7 +235,16 @@
            return R.ok();
        }
//        List<Order> orders = orderService.selectorderNoL(batch);
        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", combParam.getMatnr()).eq("batch", combParam.getBatch()).eq("order_no",combParam.getOrderNo()));
//        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", combParam.getMatnr()).eq("batch", combParam.getBatch()).eq("order_no",combParam.getOrderNo()));
        Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, combParam.getOrderNo());
        List<OrderDetl> orderDetlList = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
        OrderDetl orderDetl = null;
        for (OrderDetl orderDetl1 : orderDetlList){
            if (combParam.getMatnr().equals(orderDetl1.getMatnr()) && combParam.getBatch().equals(orderDetl1.getBatch())){
                orderDetl = orderDetl1;
                break;
            }
        }
        if (Cools.isEmpty(orderDetl)){
            return R.error("未查到数据");
        }
@@ -244,7 +253,8 @@
        }
        //复核数
        orderDetl.setSource(1);
        orderDetlService.updateById(orderDetl);
//        orderDetlService.updateById(orderDetl);
        OrderInAndOutUtil.updateOrderDetl(Boolean.FALSE,order,orderDetl);
        return R.ok();
    }
src/main/java/com/zy/asrs/controller/OutController.java
@@ -7,7 +7,9 @@
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.OrderDetlPakout;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
import com.zy.common.web.BaseController;
@@ -32,6 +34,8 @@
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private OrderDetlPakoutService orderDetlPakoutService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private LocMastService locMastService;
@@ -47,7 +51,7 @@
    @ManagerAuth
    public R pakoutOrderDetlIds(@RequestParam Long orderId) throws InterruptedException {
        Thread.sleep(200);
        return R.ok().add(orderDetlService.selectByOrderId(orderId).stream().map(OrderDetl::getId).distinct().collect(Collectors.toList()));
        return R.ok().add(orderDetlPakoutService.selectByOrderId(orderId).stream().map(OrderDetlPakout::getId).distinct().collect(Collectors.toList()));
    }
    @PostMapping("/out/pakout/preview/auth")
@@ -56,12 +60,13 @@
        if (Cools.isEmpty(ids)) {
            return R.parse(BaseRes.PARAM);
        }
        List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids);
        List<OrderDetlPakout> orderDetlPakouts = orderDetlPakoutService.selectBatchIds(ids);
        List<LocDto> locDtos = new ArrayList<>();
        Set<String> exist = new HashSet<>();
        for (OrderDetl orderDetl : orderDetls) {
        for (OrderDetlPakout orderDetl : orderDetlPakouts) {
            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
            if (issued <= 0.0D) { continue; }
            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
src/main/java/com/zy/asrs/controller/WaitPakinController.java
@@ -16,6 +16,7 @@
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.WaitPakinService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -105,9 +106,10 @@
            waitPakinService.delete(new EntityWrapper<>(entity));
            //订单关联,修改订单作业数量
            if (!Cools.isEmpty(entity.getOrderNo())) {
                if (!orderDetlService.decrease(entity.getOrderNo(), entity.getMatnr(), entity.getBatch(), entity.getAnfme())) {
                    return R.error("订单数据回滚失败");
                }
//                if (!orderDetlService.decrease(entity.getOrderNo(), entity.getMatnr(), entity.getBatch(), entity.getAnfme())) {
//                    return R.error("订单数据回滚失败");
//                }
                OrderInAndOutUtil.decrease(Boolean.TRUE, entity.getOrderNo(), entity.getMatnr(), entity.getBatch(), entity.getAnfme());
            }
        }
        return R.ok();
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -13,6 +13,7 @@
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
import com.zy.common.model.enums.IoWorkType;
@@ -329,9 +330,12 @@
        // 生成工作档明细
        for (LocDto locDto : taskDto.getLocDtos()) {
            if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
//            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
            OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
            if (orderDetl == null) {
                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
//                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
                orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null);
            }
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(orderDetl);
@@ -348,11 +352,13 @@
            if (!wrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作档明细失败");
            }
            // 修改订单明细
            if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
                throw new CoolException("修改订单明细数量失败");
            }
            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
//            // 修改订单明细
//            if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
//                throw new CoolException("修改订单明细数量失败");
//            }
//            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
            OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE,orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme());
            OrderInAndOutUtil.updateOrder(Boolean.FALSE,orderDetl.getOrderId(), 2L, userId);
        }
        // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中
        locMast = locMastService.selectById(taskDto.getLocNo());
@@ -888,28 +894,32 @@
            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
            for (WrkDetl wrkDetl : wrkDetls) {
                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
                        throw new CoolException("订单数据回滚失败");
                    }
//                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
//                        throw new CoolException("订单数据回滚失败");
//                    }
                    OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme());
                    //修改订单主表状态,没有作业数量时才可以修改
                    boolean flag = true;
                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
//                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
                    Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo());
                    List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
                    for(OrderDetl orderDetl : orderDetls){
                        if(orderDetl.getWorkQty() > 0){
                            flag = false;
                        }
                    }
                    if(flag){
                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
//                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
                        if(!Cools.isEmpty(order) && order.getSettle()==2){
                            order.setSettle(1L);
                            order.setUpdateBy(userId);
                            order.setUpdateTime(now);
                        }
                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
                            throw new CoolException("修改订单状态失败");
                        }
//                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
//                            throw new CoolException("修改订单状态失败");
//                        }
                        OrderInAndOutUtil.updateOrder(Boolean.FALSE,order.getId(),order.getSettle(),userId);
                    }
                }
            }
src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
@@ -5,6 +5,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.handler.AutoLocMoveHandler;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.properties.SlaveWmsParameterProperties;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
@@ -33,6 +34,8 @@
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderPakoutService orderPakoutService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private AutoMoveService autoMoveService;
@@ -45,16 +48,16 @@
            if (Cools.isEmpty(config) || config.getValue().equals("false")) {
                return;
            }
            Order order = orderService.selectOrderMoveStatus();
            if (!Cools.isEmpty(order)){
            OrderPakout orderPakout = orderPakoutService.selectOrderMoveStatus();
            if (!Cools.isEmpty(orderPakout)){
//                autoMoveService.selectList()
            }else {
                order = orderService.selectOrderMoveStatusInitial();
                if (Cools.isEmpty(order)){
                orderPakout = orderPakoutService.selectOrderMoveStatusInitial();
                if (Cools.isEmpty(orderPakout)){
                    return;
                }
                order.setMoveStatus(2);
                orderService.updateById(order);
                orderPakout.setMoveStatus(2);
                orderPakoutService.updateById(orderPakout);
            }
        }
    }
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -6,6 +6,7 @@
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.OrderSyncHandler;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.entity.Parameter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -43,7 +44,8 @@
    public void completeAndReport(){
        String erpReport = Parameter.get().getErpReport();
        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
            List<Order> orders = orderService.selectComplete();
//            List<Order> orders = orderService.selectComplete();
            List<Order> orders = OrderInAndOutUtil.selectComplete(null);
            for (Order order : orders) {
                ReturnT<String> result = orderSyncHandler.start(order);
                if (!result.isSuccess()) {
src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
@@ -2,12 +2,13 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl;
import com.zy.asrs.service.impl.OrderPakinServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -21,14 +22,24 @@
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderPakinService orderPakinService;
    @Autowired
    private OrderPakoutService orderPakoutService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private OrderDetlPakinServiceImpl orderDetlPakinService;
    @Autowired
    private OrderDetlPakoutService orderDetlPakoutService;
    public ReturnT<String> start(){
        List<Order> settleEqual6 = orderService.selectList(new EntityWrapper<Order>()
                .eq("settle", 6));
//        List<Order> settleEqual6 = orderService.selectList(new EntityWrapper<Order>()
//                .eq("settle", 6));
        List<Order> settleEqual6 = OrderInAndOutUtil.selectBySettle(null, 6L);
        for (Order order : settleEqual6) {
            List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
                    .eq("order_no", order.getOrderNo()));
//            List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
//                    .eq("order_no", order.getOrderNo()));
            List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
            moveBoth(order,orderDetls);
            log.info("已完成单据移动至历史表成功 =====>" +order);
        }
@@ -41,17 +52,31 @@
            for (OrderDetl orderDetl : orderDetls) {
                orderDetl.setUpdateBy(0L);
                orderDetl.setUpdateTime(now);
                orderDetlService.addToLogTable(orderDetl);
                orderDetlService.delete(new EntityWrapper<OrderDetl>()
                        .eq("id",orderDetl.getId()));
//                orderDetlService.addToLogTable(orderDetl);
                OrderInAndOutUtil.addToLogTableOrderDetl(order.getPakinPakoutStatus$(),orderDetl);
                if (order.getPakinPakoutStatus() == 1){
                    orderDetlPakinService.delete(new EntityWrapper<OrderDetlPakin>()
                            .eq("id",orderDetl.getId()));
                } else {
                    orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>()
                            .eq("id",orderDetl.getId()));
                }
            }
        }
        if (!Cools.isEmpty(order)){
            order.setUpdateBy(0L);
            order.setUpdateTime(now);
            orderService.addToLogTable(order);
            orderService.delete(new EntityWrapper<Order>()
                    .eq("id",order.getId()));
//            orderService.addToLogTable(order);
            OrderInAndOutUtil.addToLogTableOrder(order.getPakinPakoutStatus$(),order);
//            orderService.delete(new EntityWrapper<Order>()
//                    .eq("id",order.getId()));
            if (order.getPakinPakoutStatus() == 1){
                orderPakinService.delete(new EntityWrapper<OrderPakin>()
                        .eq("id",order.getId()));
            } else {
                orderPakoutService.delete(new EntityWrapper<OrderPakout>()
                        .eq("id",order.getId()));
            }
        }
    }
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -14,6 +14,7 @@
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.constant.MesConstant;
import com.zy.common.model.MesPakinParam;
import com.zy.common.model.MesPakoutParam;
@@ -50,7 +51,8 @@
        if (null == docType) {
            return SUCCESS;
        }
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
//        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
        // 入库完成上报
        if (docType.getPakin() == 1) {
            MesPakinParam pakinParam = new MesPakinParam();
@@ -74,9 +76,10 @@
                if (jsonObject.getInteger("code").equals(200)) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
//                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
//                        throw new CoolException("服务器内部错误,请联系管理员");
//                    }
                    OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(),6L,null);
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
                    throw new CoolException("上报mes系统失败");
@@ -128,9 +131,10 @@
                if (jsonObject.getInteger("code").equals(200)) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
//                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
//                        throw new CoolException("服务器内部错误,请联系管理员");
//                    }
                    OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(),6L,null);
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response);
                    throw new CoolException("上报mes系统失败");
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -8,6 +8,7 @@
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -49,7 +50,12 @@
                while (iterator.hasNext()) {
                    WrkDetl wrkDetl = iterator.next();
                    if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
                        orderService.checkComplete(wrkDetl.getOrderNo());
//                        orderService.checkComplete(wrkDetl.getOrderNo());
                        if (wrkMast.getIoType() ==  1 ||  wrkMast.getIoType() == 54 ||  wrkMast.getIoType() == 104){
                            OrderInAndOutUtil.checkComplete(Boolean.TRUE,wrkDetl.getOrderNo());
                        } else {
                            OrderInAndOutUtil.checkComplete(Boolean.FALSE,wrkDetl.getOrderNo());
                        }
                        iterator.remove();
                    }
                }
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -35,6 +35,10 @@
    private WaitPakinService waitPakinService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private OrderDetlPakinService orderDetlPakinService;
    @Autowired
    private OrderDetlPakoutService orderDetlPakoutService;
    public ReturnT<String> start(WrkMast wrkMast) {
        // 4.入库完成
@@ -115,14 +119,14 @@
                        }
                        // 更新订单完成数量
                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (orderDetl==null){
                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
                        OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (orderDetlPakin==null){
                            orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
                        }
                        try {
                            if(!Cools.isEmpty(orderDetl)){
                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
                            if(!Cools.isEmpty(orderDetlPakin)){
                                if(!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        orderDetlPakin.getBatch(),wrkDetl.getAnfme())){
//                                    exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -166,14 +170,14 @@
                        }
                        // 更新订单完成数量
                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (orderDetl==null){
                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
                        OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (orderDetlPakin==null){
                            orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
                        }
                        try {
                            if(!Cools.isEmpty(orderDetl)){
                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
                            if(!Cools.isEmpty(orderDetlPakin)){
                                if(!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        orderDetlPakin.getBatch(),wrkDetl.getAnfme())){
//                                    exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -349,14 +353,14 @@
                    }
                    for (WrkDetl wrkDetl : wrkDetls101) {
                        // 更新订单完成数量
                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (orderDetl==null){
                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
                        OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (orderDetlPakout==null){
                            orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
                        }
                        try {
                            if(!Cools.isEmpty(orderDetl)){
                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
                            if(!Cools.isEmpty(orderDetlPakout)){
                                if(!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        orderDetlPakout.getBatch(),wrkDetl.getAnfme())){
//                                    exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
@@ -5,6 +5,7 @@
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.kingdee.handler.ReviewOrderSyncHandler;
import com.zy.asrs.utils.OrderInAndOutUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -35,7 +36,8 @@
        if(!ReviewOrderSwitch){
            return;
        }
        List<Order> orders = orderService.selectComplete();
//        List<Order> orders = orderService.selectComplete();
        List<Order> orders = OrderInAndOutUtil.selectComplete(null);
        for (Order order : orders) {
            ReturnT<String> result = reviewOrderSyncHandler.start(order);
            if (!result.isSuccess()) {
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -4,6 +4,7 @@
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.kingdee.handler.SubmitOrderSyncHandler;
import com.zy.asrs.utils.OrderInAndOutUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -35,7 +36,8 @@
        if(!ReviewOrderSwitch){
            return;
        }
        List<Order> orders = orderService.selectComplete8();
//        List<Order> orders = orderService.selectComplete8();
        List<Order> orders = OrderInAndOutUtil.selectComplete8(null);
        for (Order order : orders) {
            ReturnT<String> result = submitOrderSyncHandler.start(order);
            if (!result.isSuccess()) {
src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
@@ -7,6 +7,7 @@
import com.zy.asrs.task.kingdee.handler.ReviewOrderSyncHandler;
import com.zy.asrs.task.kingdee.handler.SaveOrderSyncHandler;
import com.zy.asrs.task.kingdee.handler.SubmitOrderSyncHandler;
import com.zy.asrs.utils.OrderInAndOutUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -37,7 +38,8 @@
        if(!ReviewOrderSwitch){
            return;
        }
        List<Order> orders = orderService.selectComplete8();
//        List<Order> orders = orderService.selectComplete8();
        List<Order> orders = OrderInAndOutUtil.selectComplete8(null);
        for (Order order : orders) {
            ReturnT<String> result = saveOrderSyncHandler.start(order);
            if (!result.isSuccess()) {
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -12,6 +12,7 @@
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.erp.kingdee.entity.param.InFormIdParam;
import com.zy.erp.kingdee.enums.KingDeeUtilType;
import com.zy.common.utils.HttpHandler;
@@ -25,6 +26,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Service
@Slf4j
@@ -171,7 +173,8 @@
                        //最新抓取时间
                        Date jsonDate = KingDeeUtil.KingDeeDate(jsonArray.get(1).toString());
                        docType.setCreateTime(jsonDate);
                        Order order = orderService.selectByNo(jsonArray.get(0).toString());
                        Order order = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, jsonArray.get(0).toString());
//                        Order order = orderService.selectByNo(jsonArray.get(0).toString());
                        if (Cools.isEmpty(order)) {
                            Date now = new Date();
                            // 单据主档
@@ -211,14 +214,15 @@
                                    now,    // 修改时间
                                    null    // 备注
                            );
                             OrderInAndOutUtil.insertOrder(kingDeeUtilType.pakIn == 1, order);
                            if (!orderService.insert(order)) {
                                if (!jsonDate.equals(docType.getCreateTime())){
                                    callApiLogSaveOrder(order,kingDeeUtilType, "生成单据主档失败,请联系管理员"+order, false);
                                }
                                continue;
//                                throw new CoolException("生成单据主档失败,请联系管理员");
                            }
//                            if (!orderService.insert(order)) {
//                                if (!jsonDate.equals(docType.getCreateTime())){
//                                    callApiLogSaveOrder(order,kingDeeUtilType, "生成单据主档失败,请联系管理员"+order, false);
//                                }
//                                continue;
////                                throw new CoolException("生成单据主档失败,请联系管理员");
//                            }
                        }
                        //物料编码
                        Mat mat = matService.selectByMatnr(jsonArray.get(2).toString());
@@ -228,8 +232,20 @@
                            }
                            continue;
                        }
                        OrderDetl orderDetl1 = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", jsonArray.get(0).toString()).eq("matnr", jsonArray.get(2).toString()));
                        if (!Cools.isEmpty(orderDetl1)) {
//                        OrderDetl orderDetl1 = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", jsonArray.get(0).toString()).eq("matnr", jsonArray.get(2).toString()));
//                        if (!Cools.isEmpty(orderDetl1)) {
//                            continue;
//                        }
                        Order order1 = OrderInAndOutUtil.selectByNo(kingDeeUtilType.pakIn == 1, jsonArray.get(0).toString());
                        List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(kingDeeUtilType.pakIn == 1, order1.getId());
                        boolean sign = false;
                        for (OrderDetl orderDetl : orderDetls){
                            if (orderDetl.getMatnr().equals( jsonArray.get(2).toString())){
                                sign = true;
                                break;
                            }
                        }
                        if (sign){
                            continue;
                        }
                        OrderDetl orderDetl = new OrderDetl();
@@ -244,10 +260,11 @@
                        orderDetl.setUpdateTime(new Date());
                        orderDetl.setStatus(1);
                        orderDetl.setQty(0.0D);
                        if (!orderDetlService.insert(orderDetl)) {
                            callApiLogSaveOrder(order,kingDeeUtilType, "生成单据明细失败,请联系管理员!订单号:"+order.getOrderNo(), false);
//                            throw new CoolException("生成单据明细失败,请联系管理员");
                        }
//                        if (!orderDetlService.insert(orderDetl)) {
//                            callApiLogSaveOrder(order,kingDeeUtilType, "生成单据明细失败,请联系管理员!订单号:"+order.getOrderNo(), false);
////                            throw new CoolException("生成单据明细失败,请联系管理员");
//                        }
                        OrderInAndOutUtil.insertOrderDetl(kingDeeUtilType.pakIn == 1,order,orderDetl);
                    }
                    docTypeService.updateById(docType);
                }
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
@@ -11,6 +11,7 @@
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.utils.HttpHandler;
import com.zy.erp.kingdee.enums.KingDeeUtilType;
import lombok.extern.slf4j.Slf4j;
@@ -83,7 +84,8 @@
            if(bool.equals("true")){
                success = true;
                order.setSettle(8L);
                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
//                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(), 8L, null);
            }
        } catch (Exception e) {
            log.error("fail", e);
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -11,6 +11,7 @@
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.utils.HttpHandler;
import com.zy.erp.kingdee.enums.KingDeeUtilType;
import lombok.extern.slf4j.Slf4j;
@@ -83,7 +84,9 @@
            if(bool.equals("true")){
                success = true;
                order.setSettle(6L);
                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
//                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(), 6L, null);
            }
        } catch (Exception e) {
            log.error("fail", e);
src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
@@ -11,6 +11,7 @@
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.utils.HttpHandler;
import com.zy.erp.kingdee.enums.KingDeeUtilType;
import lombok.extern.slf4j.Slf4j;
@@ -83,7 +84,8 @@
            if(bool.equals("true")){
                success = true;
                order.setSettle(6L);
                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
//                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(), 6L, null);
            }
        } catch (Exception e) {
            log.error("fail", e);