自动化立体仓库 - WMS系统
skyouc
5 天以前 08915b05c42b2ba97a8bb0809aeb48802ae63b46
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -5,6 +5,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.TaskStatusType;
import com.zy.asrs.service.*;
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;
@@ -17,6 +18,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
/**
 * Created by vincent on 2020/7/6
@@ -47,8 +49,10 @@
    private TaskDetlService taskDetlService;
    @Autowired
    private TaskDetlLogService taskDetlLogService;
    @Autowired
    private OrderPakinService orderPakinService;
    @Transactional
    @Transactional(rollbackFor = Exception.class)
    public ReturnT<String> start(WrkMast wrkMast) {
        try {
            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
@@ -59,10 +63,18 @@
                    WrkDetl wrkDetl = iterator.next();
                    if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
//                        orderService.checkComplete(wrkDetl.getOrderNo());
                        if (wrkMast.getIoType() ==  1 || wrkMast.getIoType() == 8 ||  wrkMast.getIoType() == 54 ||  wrkMast.getIoType() == 104){
                            OrderInAndOutUtil.checkComplete(Boolean.TRUE,wrkDetl.getOrderNo());
                        if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 8 || wrkMast.getIoType() == 54 || wrkMast.getIoType() == 104) {
                            OrderInAndOutUtil.checkComplete(Boolean.TRUE, wrkDetl.getOrderNo());
                        } else {
                            OrderInAndOutUtil.checkComplete(Boolean.FALSE,wrkDetl.getOrderNo());
                            OrderInAndOutUtil.checkComplete(Boolean.FALSE, wrkDetl.getOrderNo());
                            OrderPakin orderPakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>()
                                    .eq("order_no", wrkDetl.getOrderNo())
                                    .in("doc_type", 7));
                            if (!Objects.isNull(orderPakin)) {
                                OrderInAndOutUtil.checkComplete(Boolean.TRUE, orderPakin.getOrderNo());
                            }
                        }
                        iterator.remove();
                    }
@@ -72,7 +84,7 @@
            // 入库 --------------------------------------------------------------------------------
            if (wrkMast.getWrkSts() == 5) {
                // 全板入库
                if (wrkMast.getIoType() == 1) {
                if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10) {
                    // 入库通知单
                    if (!Cools.isEmpty(wrkMast.getBarcode())) {
                        // 保存入库通知档历史档
@@ -90,8 +102,9 @@
//                            exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo());
//                        }
//                    }
                // 拣料再入库
                    // 拣料再入库
                } else if (wrkMast.getIoType() == 53) {
//                    //
//                    if (!Cools.isEmpty(wrkDetls)) {
//                        if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
//                            exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo());
@@ -99,7 +112,7 @@
//                    }
                }
            // 出库 --------------------------------------------------------------------------------
                // 出库 --------------------------------------------------------------------------------
            } else if (wrkMast.getWrkSts() == 15) {
//                if (!Cools.isEmpty(wrkDetls)) {
//                    if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
@@ -118,10 +131,13 @@
            }
            // 保存工作明细档历史档
            if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
                log.error("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo());
//                exceptionHandle("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo());
            }
            // 删除工作明细档
            if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
                log.error("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo());
//                exceptionHandle("删除工作明细档[workNo={0}]失败", wrkMast.getWrkNo());
            }
        } catch (Exception e) {
@@ -144,10 +160,10 @@
                    TaskDetl taskDetl = iterator.next();
                    if (!Cools.isEmpty(taskDetl.getOrderNo())) {
//                        orderService.checkComplete(wrkDetl.getOrderNo());
                        if (task.getIoType() ==  1 || task.getIoType() == 8 ||  task.getIoType() == 54 ||  task.getIoType() == 104){
                            OrderInAndOutUtil.checkComplete(Boolean.TRUE,taskDetl.getOrderNo());
                        if (task.getIoType() == 1 || task.getIoType() == 8 || task.getIoType() == 54 || task.getIoType() == 104) {
                            OrderInAndOutUtil.checkComplete(Boolean.TRUE, taskDetl.getOrderNo());
                        } else {
                            OrderInAndOutUtil.checkComplete(Boolean.FALSE,taskDetl.getOrderNo());
                            OrderInAndOutUtil.checkComplete(Boolean.FALSE, taskDetl.getOrderNo());
                        }
                        iterator.remove();
                    }
@@ -204,22 +220,26 @@
            if (!taskService.deleteById(task)) {
                exceptionHandle("删除工作主档[workNo={0}]失败", task.getWrkNo());
            }
            List<TaskDetl> taskDetls2 = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
            for (TaskDetl taskDetl :taskDetls2){
            for (TaskDetl taskDetl : taskDetls2) {
                TaskDetlLog taskDetlLog = new TaskDetlLog();
                BeanUtils.copyProperties(taskDetl, taskDetlLog);
                taskDetlLog.setLogId(taskLog.getId());
                taskDetlLog.setId(null);
                // 保存工作明细档历史档
                if (!taskDetlLogService.insert(taskDetlLog)) {
                exceptionHandle("保存工作明细历史档[workNo={0}]失败", task.getWrkNo());
                    log.error("保存工作明细历史档[workNo={0}]失败", task.getWrkNo());
//                    exceptionHandle("保存工作明细历史档[workNo={0}]失败", task.getWrkNo());
                }
                // 删除工作明细档
                if (!taskDetlService.deleteById(taskDetl)) {
                exceptionHandle("删除工作明细档[workNo={0}]失败", task.getWrkNo());
                }
                // 删除工作明细
            }
            if (!taskDetlService.delete(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()))) {
                log.error("保存工作明细历史档[workNo={0}]失败", task.getWrkNo());
//                exceptionHandle("删除工作明细档[workNo={0}]失败", task.getWrkNo());
            }
        } catch (Exception e) {
            log.error("fail", e);