自动化立体仓库 - WMS系统
13
zhang
昨天 d7c7cbbe2ba964b92e31e36d15c6941b4328b9b4
13
1个文件已删除
18个文件已修改
4个文件已添加
776 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderReportController.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderReportLogMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderReportLogService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderReportLogServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/LocMoveAllScheduler.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OverYearLogScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkMastScheduler.java 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/core/WcsDispatcher.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OverYearLogHandler.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/timer/LoadingConfigTimer.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/locMast/locMast.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/orderPakin.js 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/orderPakout.js 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/out.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/orderReport/orderReport.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/orderPakout.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/orderReport/orderReport.html 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderReportController.java
New file
@@ -0,0 +1,76 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.OrderPakout;
import com.zy.asrs.entity.OrderReport;
import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.service.OrderDetlReportService;
import com.zy.asrs.service.OrderReportService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
@RequestMapping(value = "/report")
public class OrderReportController extends BaseController {
    @Autowired
    private OrderReportService orderReportService;
    @Autowired
    private OrderDetlReportService orderDetlReportService;
    @Autowired
    private DocTypeService docTypeService;
    @RequestMapping(value = "/order/head/page/auth")
    @ManagerAuth
    public R head(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        EntityWrapper<OrderReport> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        } else {
            wrapper.orderBy("settle").orderBy("create_time", false);
        }
        wrapper.eq("status", 1);
        return R.ok(orderReportService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            String val = String.valueOf(entry.getValue());
            if (val.contains(RANGE_TIME_LINK)) {
                String[] dates = val.split(RANGE_TIME_LINK);
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                wrapper.like(entry.getKey(), val);
            }
        }
    }
}
src/main/java/com/zy/asrs/mapper/OrderReportLogMapper.java
New file
@@ -0,0 +1,14 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.OrderReport;
import com.zy.asrs.entity.OrderReportLog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface OrderReportLogMapper extends BaseMapper<OrderReportLog> {
}
src/main/java/com/zy/asrs/service/OrderReportLogService.java
New file
@@ -0,0 +1,10 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.OrderReport;
import com.zy.asrs.entity.OrderReportLog;
public interface OrderReportLogService extends IService<OrderReportLog> {
}
src/main/java/com/zy/asrs/service/impl/OrderReportLogServiceImpl.java
New file
@@ -0,0 +1,18 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.OrderReport;
import com.zy.asrs.entity.OrderReportLog;
import com.zy.asrs.mapper.OrderReportLogMapper;
import com.zy.asrs.mapper.OrderReportMapper;
import com.zy.asrs.service.OrderReportLogService;
import com.zy.asrs.service.OrderReportService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service("orderReportLogService")
public class OrderReportLogServiceImpl extends ServiceImpl<OrderReportLogMapper, OrderReportLog> implements OrderReportLogService {
}
src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
@@ -1,20 +1,14 @@
package com.zy.asrs.task;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.AutoMoveService;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.WorkService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.handler.AutoLocMoveHandler;
import com.zy.common.properties.SlaveWmsParameterProperties;
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;
@Slf4j
@@ -37,48 +31,5 @@
    @Autowired
    private AutoMoveService autoMoveService;
    //定时出库   经典双伸
    //定时出库
    @Scheduled(cron = "0/3 * * * * ? ")
    public void locToLoc11() {
        if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()) {
            Config config = configService.selectConfigByCode("AutoLocMoveUnilateral");
            if (Cools.isEmpty(config) || config.getValue().equals("false")) {
                return;
            }
            int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
            for (int crnNo = 1; crnNo < crnCount; crnNo++) {
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
                WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
                if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)) {
                    autoLocMoveHandler.start(crnNo, 11);
                }
            }
        }
    }
    //定时入库
    @Scheduled(cron = "0/3 * * * * ? ")
    public void locToLoc111() {
        if (slaveWmsParameterProperties.isAutoLocMoveUnilateralBoolean()) {
            Config config = configService.selectConfigByCode("AutoLocMoveUnilateral");
            if (Cools.isEmpty(config) || config.getValue().equals("false")) {
                return;
            }
            int crnCount = basCrnpService.selectCount(new EntityWrapper<>());
            for (int crnNo = 1; crnNo < crnCount; crnNo++) {
                BasCrnp basCrnp = basCrnpService.selectById(crnNo);
                if (basCrnp == null) {
                    continue;
                }
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 111).eq("crn_no", crnNo));
                WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 11).eq("crn_no", crnNo));
                if (Cools.isEmpty(wrkMast) && Cools.isEmpty(wrkMast1)) {
                    autoLocMoveHandler.start(crnNo, 111);
                }
            }
        }
    }
}
src/main/java/com/zy/asrs/task/LocMoveAllScheduler.java
@@ -112,7 +112,6 @@
                        locMastEnd = locNo;
                    }
                }
//                if (Cools.isEmpty(locMastStart) || Cools.isEmpty(locMastEnd)){
                ReturnT<String> result = locMoveAllHandler.start(locMastStart, locMastEnd, basCrnp.getCrnNo());
                if (!result.isSuccess()) {
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -1,11 +1,20 @@
package com.zy.asrs.task;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.OrderSyncHandler;
import com.zy.common.entity.Parameter;
import com.zy.common.utils.Synchro;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * Created by vincent on 2020/7/7
@@ -26,6 +35,10 @@
    private OrderDetlReportService orderDetlReportService;
    @Autowired
    private OrderDetlReportLogService orderDetlReportLogService;
    @Autowired
    private OrderReportService orderReportService;
    @Autowired
    private OrderReportLogService orderReportLogService;
    @Scheduled(cron = "0 0 1 * * ? ")
    public void clearApiLog() {
@@ -36,31 +49,16 @@
        }
    }
   /* @Scheduled(cron = "0/30 * * * * ? ")
    public void clearReportLog() {
        try {
            List<OrderDetlReport> orderDetls = orderDetlReportService.selectList(new EntityWrapper<OrderDetlReport>());
            for (OrderDetlReport orderDetl : orderDetls) {
                OrderPakin order = orderService.selectByNo(orderDetl.getOrderNo());
                if (order == null) {
                    OrderDetlReportLog orderDetlReportLog = new OrderDetlReportLog();
                    orderDetlReportLog.sync(orderDetl);
                    orderDetlReportLog.setId(null);
                    orderDetlReportLogService.insert(orderDetlReportLog);
                    orderDetlReportService.deleteById(orderDetl.getId());
                }
            }
        } catch (Exception e) {
            log.error("上报日志删除", e);
        }
    }
    /**
     * 订单状态4至6,并且写入上报表
     */
    @Scheduled(cron = "0/5 * * * * ? ")
    @Async("orderThreadPool")
    public void completeAndReport() {
    public void completeOrderPakin() {
        String erpReport = Parameter.get().getErpReport();
        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
            List<OrderPakin> orders = orderService.selectComplete();
            List<OrderPakin> orders = orderPakinService.selectComplete();
            for (OrderPakin order : orders) {
                ReturnT<String> result = orderSyncHandler.start(order);
                if (!result.isSuccess()) {
@@ -68,6 +66,48 @@
                }
            }
        }
    }*/
    }
    /**
     * 订单状态4至6,并且写入上报表
     */
    @Scheduled(cron = "0/5 * * * * ? ")
    @Async("orderThreadPool")
    public void completeOrderPakout() {
        String erpReport = Parameter.get().getErpReport();
        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
            List<OrderPakout> orders = orderPakoutService.selectComplete();
            for (OrderPakout order : orders) {
                ReturnT<String> result = orderSyncHandler.start(order);
                if (!result.isSuccess()) {
                    log.error("单据[orderNo={}]上报erp失败", order.getOrderNo());
                }
            }
        }
    }
    //@Scheduled(cron = "0 0 3 * * ? ")
    @Scheduled(cron = "0/5 * * * * ? ")
    public void clearReportLog() {
        try {
            List<OrderReport> orderReports = orderReportService.selectList(new EntityWrapper<OrderReport>().eq("status", 1).eq("settle", 4));
            for (OrderReport orderReport : orderReports) {
                List<OrderDetlReportLog> orderId = orderDetlReportLogService.selectList(new EntityWrapper<OrderDetlReportLog>().eq("order_id", orderReport.getId()));
                for (OrderDetlReportLog orderDetl : orderId) {
                    OrderDetlReportLog orderDetlReportLog = new OrderDetlReportLog();
                    orderDetlReportLog.sync(orderDetl);
                    orderDetlReportLog.setId(null);
                    orderDetlReportLogService.insert(orderDetlReportLog);
                    orderDetlReportService.deleteById(orderDetl.getId());
                }
                OrderReportLog reportLog = new OrderReportLog();
                Synchro.Copy(orderReport, reportLog);
                orderReportLogService.insert(reportLog);
                orderReportService.deleteById(orderReport.getId());
            }
        } catch (Exception e) {
            log.error("上报日志删除", e);
        }
    }
}
src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
@@ -19,7 +19,7 @@
    @Autowired
    private OverYearLogHandler overYearLogHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
    @Scheduled(cron = "0 0 2 * * ? ")
    private void execute() {
        ReturnT<String> returnT = overYearLogHandler.start();
        if (!returnT.isSuccess()) {
src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,21 +1,10 @@
package com.zy.asrs.task;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.param.ShuttleMoveTask;
import com.zy.asrs.entity.param.ShuttleOutTask;
import com.zy.asrs.entity.param.ShuttleTask;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.impl.LocMastServiceImpl;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkMastHandler;
import com.zy.common.utils.HttpHandler;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -67,216 +56,4 @@
        }
    }
    @Scheduled(cron = "0/3 * * * * ? ") //入库任务下发
    private void ShuttleInTaskSend() {
        procesMode();
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                .eq("wrk_sts", 2).in("io_type", 1, 10, 53, 54, 57).eq("crn_no", 7));
        if (Cools.isEmpty(wrkMasts)) {
            return;
        }
        try {
            for (WrkMast wrkMast : wrkMasts) {
                if (wrkMast.getStaNo() == 1031) {
                    Config config = configService.selectConfigByCode("2.5F_Mode");
                    if (Cools.isEmpty(config) || config.getValue().equals("false")) {
                        return;
                    }
                    if (config.getValue().equalsIgnoreCase("1")) {
                        log.info("模式不对2");
                        return;
                    }
                }
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
                if (locMast == null) {
                    throw new CoolException("下发四向车wcs任务失败");
                }
                String loc;
                if ((locMast.getRow1() - 4) >= 10) {
                    loc = (locMast.getRow1() - 4) + locMast.getLocNo().substring(2);
                } else {
                    loc = "0" + (locMast.getRow1() - 4) + locMast.getLocNo().substring(2);
                }
                //String loc = (locMast.getRow1() - 4) + "-" + locMast.getBay1() + "-" + locMast.getLev1();
                ShuttleTask param = new ShuttleTask();
                param.setTaskNo(wrkMast.getWrkNo().toString());
                param.setLocNo(loc);
                param.setTaskNo2(Cools.isEmpty(wrkMast.getPltType()) ? null : wrkMast.getPltType().toString());
                param.setSourceStaNo(wrkMast.getSourceStaNo());
                param.setStaNo(wrkMast.getStaNo());
                param.setBarcode(wrkMast.getBarcode());
                //param.setPriority("11");
                String response = new HttpHandler.Builder()
                        .setUri(shuttleWcsUrl)
                        .setPath("/openapi/createInTask")
                        .setJson(JSON.toJSONString(param))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                Integer code = jsonObject.getInteger("code");
                if (code.equals(200)) {
                    wrkMast.setWrkSts(105L);
                    wrkMast.setModiTime(new Date());
                    if (!wrkMastService.updateById(wrkMast)) {
                        log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo());
                    }
                }
            }
        } catch (Exception e) {
            throw new CoolException("下发四向车wcs任务失败");
        }
    }
    @Scheduled(cron = "0/3 * * * * ? ") //出库库任务下发
    private void ShuttleOutTaskSend() {
        procesMode();
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                .in("io_type", 101, 110, 103, 104, 107)
                .eq("wrk_sts", 11).eq("crn_no", 7));
        if (Cools.isEmpty(wrkMasts)) {
            return;
        }
        try {
            for (WrkMast wrkMast : wrkMasts) {
                if (wrkMast.getStaNo() == 1031) {
                    Config config = configService.selectConfigByCode("2.5F_Mode");
                    if (Cools.isEmpty(config) || config.getValue().equals("false")) {
                        return;
                    }
                    if (config.getValue().equalsIgnoreCase("2")) {
                        log.info("模式不对2");
                        return;
                    }
                }
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
                if (locMast == null) {
                    throw new CoolException("下发四向车wcs任务失败");
                }
                String loc;
                if ((locMast.getRow1() - 4) >= 10) {
                    loc = (locMast.getRow1() - 4) + locMast.getLocNo().substring(2);
                } else {
                    loc = "0" + (locMast.getRow1() - 4) + locMast.getLocNo().substring(2);
                }
                //String loc = (locMast.getRow1() - 4) + "-" + locMast.getBay1() + "-" + locMast.getLev1();
                ShuttleOutTask param = new ShuttleOutTask();
                param.setTaskNo(wrkMast.getWrkNo().toString());
                param.setSourceLocNo(loc);
                param.setStaNo(wrkMast.getStaNo());
                //param.setPriority("11");
                String response = new HttpHandler.Builder()
                        .setUri(shuttleWcsUrl)
                        .setPath("/openapi/createOutTask")
                        .setJson(JSON.toJSONString(param))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                Integer code = jsonObject.getInteger("code");
                if (code.equals(200)) {
                    wrkMast.setWrkSts(105L);
                    wrkMast.setModiTime(new Date());
                    if (!wrkMastService.updateById(wrkMast)) {
                        log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo());
                    }
                }
            }
        } catch (Exception e) {
            throw new CoolException("下发四向车wcs任务失败");
        }
    }
    //    @Scheduled(cron = "0/3 * * * * ? ") //移库任务下发
    private void ShuttleMoveTaskSend() {
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 11).eq("io_type", 11));
        if (wrkMasts.isEmpty()) {
            return;
        }
        try {
            for (WrkMast wrkMast : wrkMasts) {
                LocMast destLoc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
                LocMast originLoc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
                if (originLoc == null || destLoc == null) {
                    throw new CoolException("下发四向车wcs任务失败");
                }
                String originLoc1 = (originLoc.getRow1() - 16) + "-" + originLoc.getBay1() + "-" + originLoc.getLev1();
                String destLoc1 = (destLoc.getRow1() - 16) + "-" + destLoc.getBay1() + "-" + destLoc.getLev1();
                ShuttleMoveTask param = new ShuttleMoveTask();
                param.setTaskNo(wrkMast.getWrkNo().toString());
                param.setOriginLoc(originLoc1);
                param.setDestLoc(destLoc1);
                param.setRecord(true);
                param.setPriority("11");
                String response = new HttpHandler.Builder()
                        .setUri(shuttleWcsUrl)
                        .setPath("/openapi/createLadenMoveTakeTask")
                        .setJson(JSON.toJSONString(param))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                Integer code = jsonObject.getInteger("code");
                if (code.equals(200)) {
                    wrkMast.setWrkSts(105L);
                    if (!wrkMastService.updateById(wrkMast)) {
                        log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo());
                    }
                }
            }
        } catch (Exception e) {
            throw new CoolException("下发四向车wcs任务失败");
        }
    }
    //@Scheduled(cron = "0/3 * * * * ? ") //移库任务下发
    public void switchMode() {
        procesMode();
    }
    //1:从四向库到堆垛机库
    //2:从堆垛机库到四向库
    private void procesMode() {
        Config config = configService.selectConfigByCode("2.5F_Mode");
        if (Cools.isEmpty(config) || config.getValue().equals("false")) {
            return;
        }
        List<WrkMast> wrkMastList1 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                .in("io_type", 1, 10).eq("crn_no", 1).eq("sta_no", 1131));
        List<WrkMast> wrkMastList2 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                .in("io_type", 101, 110).eq("crn_no", 7).eq("sta_no", 1031));
        if (wrkMastList1.isEmpty() && wrkMastList2.isEmpty()) {
            List<WrkMast> wrkMastList3 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                    .in("io_type", 101, 110).eq("crn_no", 1).eq("sta_no", 1135));
            List<WrkMast> wrkMastList4 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                    .in("io_type", 1, 10).eq("crn_no", 7).eq("sta_no", 1032));
            if (!wrkMastList3.isEmpty() || !wrkMastList4.isEmpty()) {
                if (!config.getValue().equalsIgnoreCase("2")) {
                    log.info("存在调拨任务去四向库,切换模式");
                    config.setValue("2");
                    configService.updateById(config);
                }
            } else {
                if (!config.getValue().equalsIgnoreCase("0")) {
                    log.info("不存在任务");
                    config.setValue("0");
                    configService.updateById(config);
                }
            }
        } else {
            List<WrkMast> wrkMastList3 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                    .in("io_type", 101, 110).eq("crn_no", 1).eq("sta_no", 1135));
            List<WrkMast> wrkMastList4 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                    .in("io_type", 1, 10).eq("crn_no", 7).eq("sta_no", 1032));
            if (wrkMastList3.isEmpty() && wrkMastList4.isEmpty()) {
                if (!config.getValue().equalsIgnoreCase("1")) {
                    log.info("存在调拨任务去duiduo,切换模式");
                    config.setValue("1");
                    configService.updateById(config);
                }
            }
        }
    }
}
src/main/java/com/zy/asrs/task/core/WcsDispatcher.java
File was deleted
src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
@@ -36,49 +36,6 @@
    @Autowired
    private WorkService workService;
    @Transactional(isolation = Isolation.REPEATABLE_READ)
    public ReturnT<String> start(Integer crnNo, Integer ioType) {
        try {
            //11  穿梭移单边
            if (ioType == 11) {
                for (int bay = 1; bay < 27; bay++) {
                    for (int lev = 1; lev < 6; lev++) {
                        List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay, lev, crnNo);
                        if (!Cools.isEmpty(locMasts) && locMasts.size() < 4) {
                            for (LocMast locMast : locMasts) {
                                LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
//                                StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null);
                                StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null, false);
                                workService.locMove(locMast.getLocNo(), startupDto.getLocNo(), 9527L);
                            }
                            return SUCCESS;
                        }
                    }
                }
            } else {//11  单边移穿梭
                List<Map<String, Object>> list = locDetlService.selectLocDetlUnilateralMoveShuttleMap(crnNo);//111   单边移穿梭
                for (Map<String, Object> map : list) {
                    String matnr = map.getOrDefault("matnr", "").toString();//物料号
                    String batch = map.getOrDefault("batch", "").toString();//批号
                    String grade = map.getOrDefault("brand", "").toString();//等级
                    int count = Integer.parseInt(map.get("count").toString());//单边库数量
                    if (count < 4) {
                        continue;
                    }
                    List<LocDetl> locDetlList = locDetlService.selectLocDetlUnilateralMoveShuttle(matnr, batch, grade, crnNo);
                    for (LocDetl locDetl : locDetlList) {
//                        StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 4 : 3, ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null);
                        StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null, false);
                        workService.locMove(locDetl.getLocNo(), startupDto.getLocNo(), 9527L);
                    }
                }
                return SUCCESS;
            }
        } catch (Exception e) {
            log.error("自动移库出错,堆垛机号{},工作类型{}", crnNo, ioType);
        }
        return SUCCESS;
    }
}
src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
@@ -39,13 +39,7 @@
            List<OrderDetlPakin> orderDetlPakouts = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>()
                    .eq("order_no", order.getOrderNo()));
            moveBothPakin(order, orderDetlPakouts);
            List<OrderDetlReport> orderNo = orderDetlReportService.selectList(new EntityWrapper<OrderDetlReport>().eq("order_no", order.getOrderNo()));
            for (OrderDetlReport orderDetlReport : orderNo) {
                OrderDetlReportLog log = new OrderDetlReportLog();
                log.sync(orderDetlReport);
                orderDetlReportLogService.insert(log);
                orderDetlReportService.deleteById(orderDetlReport);
            }
            log.info("已完成单据移动至历史表成功 =====>" + order);
        }
        return SUCCESS;
@@ -79,13 +73,6 @@
            List<OrderDetlPakout> orderDetlPakouts = orderDetlPakoutService.selectList(new EntityWrapper<OrderDetlPakout>()
                    .eq("order_no", order.getOrderNo()));
            moveBothPakout(order, orderDetlPakouts);
            List<OrderDetlReport> orderNo = orderDetlReportService.selectList(new EntityWrapper<OrderDetlReport>().eq("order_no", order.getOrderNo()));
            for (OrderDetlReport orderDetlReport : orderNo) {
                OrderDetlReportLog log = new OrderDetlReportLog();
                log.sync(orderDetlReport);
                orderDetlReportLogService.insert(log);
                orderDetlReportService.deleteById(orderDetlReport);
            }
            log.info("已完成单据移动至历史表成功 =====>" + order);
        }
        return SUCCESS;
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -1,6 +1,7 @@
package com.zy.asrs.task.handler;
import com.zy.asrs.entity.OrderPakin;
import com.zy.asrs.entity.OrderPakout;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -41,4 +42,9 @@
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> start(OrderPakout order) {
        return SUCCESS;
    }
}
src/main/java/com/zy/asrs/task/handler/OverYearLogHandler.java
@@ -2,6 +2,7 @@
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.system.timer.LoadingConfigTimer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@@ -17,13 +18,20 @@
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private LoadingConfigTimer loadingConfigTimer;
    @Transactional
    public ReturnT<String> start() {
        Integer logDeleteDays = loadingConfigTimer.getLogDeleteDays();
        if (logDeleteDays == -1) {
            return SUCCESS;
        }
        try {
            // 删除半年以上的历史档
            jdbcTemplate.update("delete from asr_wrk_detl_log where dateadd(day,360,appe_time) <= getdate();");
            jdbcTemplate.update("delete from asr_wrk_mast_log where dateadd(day,360,appe_time) <= getdate();");
            jdbcTemplate.update("delete from cust_wait_pakin_log where dateadd(day,360,appe_time) <= getdate();");
            jdbcTemplate.update("delete from asr_wrk_detl_log where dateadd(day," + logDeleteDays + ",appe_time) <= getdate();");
            jdbcTemplate.update("delete from asr_wrk_mast_log where dateadd(day," + logDeleteDays + ",appe_time) <= getdate();");
            jdbcTemplate.update("delete from cust_wait_pakin_log where dateadd(day," + logDeleteDays + ",appe_time) <= getdate();");
        } catch (Exception e) {
            e.printStackTrace();
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -57,7 +57,6 @@
        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
        try {
            if (null == locMast) {
//                exceptionHandle("工作档[workNo={0}]库位号错误[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg("工作档[workNo=" + wrkMast.getWrkNo() + "]库位号错误[locNo=" + wrkMast.getLocNo() + "]");
            }
@@ -133,8 +132,7 @@
                        }
                        try {
                            if (!Cools.isEmpty(orderDetlPakout)) {
                                if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        orderDetlPakout.getBatch(), wrkDetl.getAnfme())) {
                                if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), orderDetlPakout.getBatch(), wrkDetl.getAnfme())) {
//                                    exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -187,8 +185,7 @@
                        }
                        try {
                            if (!Cools.isEmpty(orderDetlPakout)) {
                                if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                        orderDetlPakout.getBatch(), wrkDetl.getAnfme())) {
                                if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), orderDetlPakout.getBatch(), wrkDetl.getAnfme())) {
//                                    exceptionHandle("拣料入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -254,8 +251,7 @@
                                }
                                try {
                                    if (!Cools.isEmpty(orderDetlPakout)) {
                                        if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                                orderDetlPakout.getBatch(), wrkDetl.getAnfme())) {
                                        if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), orderDetlPakout.getBatch(), wrkDetl.getAnfme())) {
//                                    exceptionHandle("全板入库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -348,14 +344,6 @@
                    break;
            }
            // 更新入库站点的入库暂存数
            // int sourceStaNo = wrkMast.getSourceStaNo() == null ? 0 : wrkMast.getSourceStaNo();
//            if (sourceSite.get(sourceStaNo) != null) {
//                BasDevpMapper basDevpMapper = SpringUtils.getBean(BasDevpMapper.class);
//                BasDevp basDevp = basDevpMapper.selectById(sourceSite.get(sourceStaNo));
//                basDevp.setInQty(basDevp.getInQty() -1);
//                basDevpMapper.updateById(basDevp);
//            }
            // 修改工作主档状态
            wrkMast.setWrkSts(5L);
@@ -388,59 +376,42 @@
                // 全板出库
                case 101:
                    List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (wrkMast.getStaNo() == 1135) {
                        //那需要生成一条四项库的入库任务
                        workService.toSxk(wrkMast, wrkDetls101, (short) 1);
                    } else if (wrkMast.getStaNo() == 1031) {
                        //那需要生成一条四项库的入库任务
                        workService.toCrn(wrkMast, wrkDetls101, (short) 1);
                    } else {
                        // 出库确认信号位
//                    if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {
//                        return SUCCESS;
//                    }
                        // 根据工作号,查询工作明细档
                        if (wrkDetls101.isEmpty()) {
//                        exceptionHandle("全板出库 ===>> 工作明细档为空;[workNo={0}]", wrkMast.getWrkNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("全板出库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                    if (wrkDetls101.isEmpty()) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("全板出库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                    }
                    for (WrkDetl wrkDetl : wrkDetls101) {
                        // 更新订单完成数量
                        OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                        if (orderDetlPakout == null) {
                            orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
                        }
                        for (WrkDetl wrkDetl : wrkDetls101) {
                            // 更新订单完成数量
                            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(orderDetlPakout)) {
                                    if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
                                            orderDetlPakout.getBatch(), wrkDetl.getAnfme())) {
//                                    exceptionHandle("全板出库 ===>> 更新订单完成数量失败;[workNo={0}],[locNo={1}]",
//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
                                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                        return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                                    }
                        try {
                            if (!Cools.isEmpty(orderDetlPakout)) {
                                if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), orderDetlPakout.getBatch(), wrkDetl.getAnfme())) {
                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                    return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                                }
                            } catch (Exception ignore) {
                            }
                        } catch (Exception ignore) {
                        }
                        // 删除工作档源库位的库存明细
                        if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
//                        exceptionHandle("全板出库 ===>> 删除库存明细失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                    }
                    // 删除工作档源库位的库存明细
                    if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("全板出库 ===>> 删除库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                    }
                    // 修改源库位状态 R ===>> O
                    if (locMast.getLocSts().equals("R")) {
                        locMast.setLocSts("O");
                        locMast.setBarcode("");
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        if (!locMastService.updateById(locMast)) {
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("全板出库 ===>> 删除库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                        }
                        // 修改源库位状态 R ===>> O
                        if (locMast.getLocSts().equals("R")) {
                            locMast.setLocSts("O");
                            locMast.setBarcode("");
                            locMast.setModiTime(now);
                            locMast.setIoTime(now);
                            if (!locMastService.updateById(locMast)) {
//                            exceptionHandle("全板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("全板出库 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                            }
                            return FAIL.setMsg("全板出库 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                        }
                    }
                    break;
@@ -453,7 +424,6 @@
                        locMast.setModiTime(now);
                        locMast.setIoTime(now);
                        if (!locMastService.updateById(locMast)) {
//                            exceptionHandle("空板出库 ===>> 修改源库位状态失败;[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return FAIL.setMsg("空板出库 ===>> 修改源库位状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                        }
@@ -466,7 +436,6 @@
            wrkMast.setWrkSts(15L);
            wrkMast.setModiTime(now);
            if (!wrkMastService.updateById(wrkMast)) {
//                exceptionHandle("更新出库完成状态失败;[workNo={0}]", wrkMast.getWrkNo());
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg("更新出库完成状态失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
            }
src/main/java/com/zy/system/timer/LoadingConfigTimer.java
@@ -23,6 +23,11 @@
     * token数量限制
     */
    private Integer tokenNumber = 1;
    /**
     * 删除天数
     */
    private Integer logDeleteDays = 360;
    @Autowired
@@ -32,6 +37,7 @@
    public void timer() {
        tokenExpire = configService.getVal("tokenExpire", Integer.class, tokenExpire);
        tokenNumber = configService.getVal("tokenNumber", Integer.class, tokenNumber);
        logDeleteDays = configService.getVal("logDeleteDays", Integer.class, logDeleteDays);
    }
src/main/webapp/static/js/locMast/locMast.js
@@ -29,6 +29,7 @@
            // ,{field: 'locSts', align: 'center',title: ''}
            // ,{field: 'sheetNo', align: 'center',title: ''}
            ,{field: 'crnNo', align: 'center',title: '堆垛机号', hide:false}
            ,{field: 'locType1$', align: 'center',title: '高低类型', hide:false}
            ,{field: 'row1', align: 'center',title: '排', sort:true, hide:false}
            ,{field: 'bay1', align: 'center',title: '列', sort:true, hide:false}
            ,{field: 'lev1', align: 'center',title: '层', sort:true, hide:false}
@@ -55,7 +56,7 @@
            // ,{field: 'barcode', align: 'center',title: ''}
            // ,{field: 'PdcType', align: 'center',title: ''}
            // ,{field: 'ctnNo', align: 'center',title: ''}
            ,{field: 'locType1$', align: 'center',title: '高低类型', hide:true}
            ,{field: 'locType2$', align: 'center',title: '宽窄类型', hide:true}
            ,{field: 'locType3$', align: 'center',title: '轻重类型', hide:true}
src/main/webapp/static/js/order/orderPakin.js
@@ -17,6 +17,7 @@
        url: baseUrl+"/docType/list/auth",
        headers: {'token': localStorage.getItem('token')},
        data: {
            pakin: 1,
            limit: 9999
        },
        method: 'POST',
@@ -36,7 +37,7 @@
    // 渲染表格
    var insTb = table.render({
        elem: '#order',
        url: baseUrl+'/order/head/page/auth',
        url: baseUrl+'/pakin/order/head/page/auth',
        headers: {token: localStorage.getItem('token')},
        page: true,
        cellMinWidth: 100,
@@ -116,7 +117,7 @@
                    table.render({
                        elem: '#lookSSXMTable',
                        headers: {token: localStorage.getItem('token')},
                        url: baseUrl+'/orderDetl/list/auth',
                        url: baseUrl+'/pakin/orderDetl/list/auth',
                        where: {
                            order_id: data.id
                        },
@@ -173,7 +174,7 @@
    // 监听行工具事件
    table.on('tool(lookSSXMTable)', function(obj) {
        $.ajax({
            url: baseUrl+"/orderDetl/getPrintDetl/" + obj.data.id,
            url: baseUrl+"/pakin/orderDetl/getPrintDetl/" + obj.data.id,
            headers: {'token': localStorage.getItem('token'),'Content-Type' :'application/json'},
            method: 'GET',
            async: false,
@@ -241,7 +242,7 @@
                    }
                    layer.load(2);
                    $.ajax({
                        url: baseUrl+"/order/form/" + (isExpAdd?"add":"modify") + "/auth",
                        url: baseUrl+"/pakin/order/form/" + (isExpAdd?"add":"modify") + "/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify({
                            orderId: Number(data.field.id),
@@ -294,7 +295,7 @@
                };
                if (!isExpAdd) {
                    $.ajax({
                        url: baseUrl+"/order/detl/all/auth?orderId=" + expTpe.id,
                        url: baseUrl+"/pakin/order/detl/all/auth?orderId=" + expTpe.id,
                        headers: {'token': localStorage.getItem('token')},
                        method: 'GET',
                        async: false,
@@ -455,7 +456,7 @@
            layer.close(i);
            layer.load(2);
            $.ajax({
                url: baseUrl+"/order/delete/auth",
                url: baseUrl+"/pakin/order/delete/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    orderId: orderId
@@ -491,7 +492,7 @@
            console.log(orderId);
            console.log(settle);
            $.ajax({
                url: baseUrl+"/order/update/auth",
                url: baseUrl+"/pakin/order/update/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    id: orderId,
@@ -522,7 +523,7 @@
    function showWrkTrace(orderId) {
        let loadIndex = layer.msg('请求中...', {icon: 16, shade: 0.01, time: false});
        $.ajax({
            url: baseUrl+"/order/wrk/trace/auth",
            url: baseUrl+"/pakin/order/wrk/trace/auth",
            headers: {'token': localStorage.getItem('token')},
            data: {
                orderId: orderId
src/main/webapp/static/js/order/orderPakout.js
@@ -17,6 +17,7 @@
        url: baseUrl+"/docType/list/auth",
        headers: {'token': localStorage.getItem('token')},
        data: {
            pakout: 1,
            limit: 9999
        },
        method: 'POST',
@@ -36,7 +37,7 @@
    // 渲染表格
    var insTb = table.render({
        elem: '#order',
        url: baseUrl+'/order/head/page/auth',
        url: baseUrl+'/pakout/order/head/page/auth',
        headers: {token: localStorage.getItem('token')},
        page: true,
        cellMinWidth: 100,
@@ -116,7 +117,7 @@
                    table.render({
                        elem: '#lookSSXMTable',
                        headers: {token: localStorage.getItem('token')},
                        url: baseUrl+'/orderDetl/list/auth',
                        url: baseUrl+'/pakout/orderDetl/list/auth',
                        where: {
                            order_id: data.id
                        },
@@ -173,7 +174,7 @@
    // 监听行工具事件
    table.on('tool(lookSSXMTable)', function(obj) {
        $.ajax({
            url: baseUrl+"/orderDetl/getPrintDetl/" + obj.data.id,
            url: baseUrl+"/pakout/orderDetl/getPrintDetl/" + obj.data.id,
            headers: {'token': localStorage.getItem('token'),'Content-Type' :'application/json'},
            method: 'GET',
            async: false,
@@ -241,7 +242,7 @@
                    }
                    layer.load(2);
                    $.ajax({
                        url: baseUrl+"/order/form/" + (isExpAdd?"add":"modify") + "/auth",
                        url: baseUrl+"/pakout/order/form/" + (isExpAdd?"add":"modify") + "/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify({
                            orderId: Number(data.field.id),
@@ -294,7 +295,7 @@
                };
                if (!isExpAdd) {
                    $.ajax({
                        url: baseUrl+"/order/detl/all/auth?orderId=" + expTpe.id,
                        url: baseUrl+"/pakout/order/detl/all/auth?orderId=" + expTpe.id,
                        headers: {'token': localStorage.getItem('token')},
                        method: 'GET',
                        async: false,
@@ -455,7 +456,7 @@
            layer.close(i);
            layer.load(2);
            $.ajax({
                url: baseUrl+"/order/delete/auth",
                url: baseUrl+"/pakout/order/delete/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    orderId: orderId
@@ -491,7 +492,7 @@
            console.log(orderId);
            console.log(settle);
            $.ajax({
                url: baseUrl+"/order/update/auth",
                url: baseUrl+"/pakout/order/update/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    id: orderId,
@@ -522,7 +523,7 @@
    function showWrkTrace(orderId) {
        let loadIndex = layer.msg('请求中...', {icon: 16, shade: 0.01, time: false});
        $.ajax({
            url: baseUrl+"/order/wrk/trace/auth",
            url: baseUrl+"/pakout/order/wrk/trace/auth",
            headers: {'token': localStorage.getItem('token')},
            data: {
                orderId: orderId
src/main/webapp/static/js/order/out.js
@@ -21,7 +21,7 @@
    insTb2 = table.render({
        elem: '#orderDetlTable',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/orderDetl/pakout/list/auth',
        url: baseUrl+'/pakout/orderDetl/pakout/list/auth',
        page: true,
        limit: 15,
        limits: [15, 30, 50, 100, 200, 500],
src/main/webapp/static/js/orderReport/orderReport.js
@@ -36,7 +36,7 @@
    // 渲染表格
    var insTb = table.render({
        elem: '#order',
        url: baseUrl+'/order/head/page/auth',
        url: baseUrl+'/report/order/head/page/auth',
        headers: {token: localStorage.getItem('token')},
        page: true,
        cellMinWidth: 100,
src/main/webapp/views/order/orderPakout.html
@@ -343,7 +343,7 @@
<script type="text/javascript" src="../../static/js/echarts/echarts.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/order/orderPakout.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/order/orderPakout.js?v=1" charset="utf-8"></script>
<script type="text/template" id="docTypeTpl">
    <option value="">选择类型</option>
src/main/webapp/views/orderReport/orderReport.html
@@ -68,9 +68,8 @@
                        <div class="layui-input-inline">
                            <select name="settle">
                                <option value="">选择状态</option>
                                <option value="1">待处理</option>
                                <option value="2">作业中</option>
                                <option value="4">已完成</option>
                                <option value="4">待上报</option>
                                <option value="5">上报失败</option>
                                <option value="6">上报完成</option>
                            </select>
                        </div>
@@ -97,12 +96,9 @@
<div id="box" style="display: block"></div>
<!-- 表格操作列 -->
<script type="text/html" id="operate">
    {{# if (d.settle == 0 || d.settle == 1) { }}
        <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>
        <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a>
    {{# } }}
    {{# if (d.settle == 2) { }}
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">完结</a>
    {{# if (d.settle == 5 ) { }}
        <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">重新上报</a>
    {{# } }}
</script>
<!-- 表格操作列 -->
@@ -343,7 +339,7 @@
<script type="text/javascript" src="../../static/js/echarts/echarts.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/order/orderPakin.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/orderReport/orderReport.js" charset="utf-8"></script>
<script type="text/template" id="docTypeTpl">
    <option value="">选择类型</option>