自动化立体仓库 - WMS系统
#
1
1 天以前 b3b5eb6bd7955afb4be48f0e34a18b92a38b102d
#
9个文件已修改
130 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderController.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/apiLog/apiLog.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -29,6 +29,14 @@
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private OrderPakinService orderPakinService;
    @Autowired
    private OrderDetlPakinService orderDetlPakinService;
    @Autowired
    private OrderPakoutService orderPakoutService;
    @Autowired
    private OrderDetlPakoutService orderDetlPakoutService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private DocTypeService docTypeService;
@@ -399,18 +407,31 @@
    @ManagerAuth(memo = "手动删除订单")
    @Transactional
    public R delete(@RequestParam Long orderId){
        orderService.remove(orderId);
//        Order order = orderService.selectById(orderId);
//        if (order != null) {
//            order.setStatus(0);
//        }
//        if (!orderService.updateById(order)) {
//            throw new CoolException("删除订单失败");
//        }
//        orderDetlService.modifyStatus(orderId, 0);
        // 获取订单信息
        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("id", orderId));
        String orderNo = order.getOrderNo();
        // 删除 OrderDetl 表中与订单相关的数据
        orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
        // 根据 PakinPakoutStatus 删除相关数据
        if (order.getPakinPakoutStatus() == 1) {
            // 删除 OrderPakin 和 OrderDetlPakin 相关数据
            orderPakinService.delete(new EntityWrapper<OrderPakin>().eq("order_no", orderNo));
            orderDetlPakinService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_no", orderNo));
        } else if (order.getPakinPakoutStatus() == 2) {
            // 删除 OrderPakout 和 OrderDetlPakout 相关数据
            orderPakoutService.delete(new EntityWrapper<OrderPakout>().eq("order_no", orderNo));
            orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_no", orderNo));
        }
        // 删除 Order 表中对应的订单数据
        orderService.delete(new EntityWrapper<Order>().eq("order_no", orderNo));
        return R.ok();
    }
    @RequestMapping(value = "/order/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -872,7 +872,7 @@
            agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoSou.getAgvLocNo());
            agvBindCtnrAndBinParam.setReqCode(String.valueOf(System.currentTimeMillis()));
            agvBindCtnrAndBinParam.setIndBind("1");
            ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器解绑",
            ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器绑定",
                    AgvConstant.AGV_URL+"/"+AgvConstant.AGV_1LBind,AgvConstant.getAGVADAPTOR(1), agvBindCtnrAndBinParam);
            if(resultBind.getCode() != 200){
                throw new CoolException("agv入库绑定失败");
@@ -888,7 +888,8 @@
    @Override
    @Transactional
    public void combAuto(CombParam param, Long userId) {
    public void
    combAuto(CombParam param, Long userId) {
        if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
            throw new CoolException(BaseRes.PARAM);
        }
@@ -920,10 +921,26 @@
        String orderNo = null;
        for (CombParam.CombMat combMat : param.getCombMats()) {
            if(combMat.getSupplier().equals("1")){
//                List<OrderDetlPakin> orderDetlPakins = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>()
//                        .eq("matnr", combMat.getMatnr()).eq("box_type3", combMat.getOrderNo())
//                        .eq("standby1", combMat.getStandby1()).eq("standby2", combMat.getStandby2())
//                        .eq("standby3", combMat.getStandby3()).eq("box_type2","BU-00001"));//1时检索和得
//                if (orderDetlPakins.size() > 0) {
//                    orderNo = orderDetlPakins.get(0).getOrderNo();
//                    combMat.setBoxType1(orderDetlPakins.get(0).getBoxType1());
//                    combMat.setBoxType2(orderDetlPakins.get(0).getBoxType2());
//                    combMat.setBoxType3(orderDetlPakins.get(0).getBoxType3());
//                    combMat.setMemo(orderDetlPakins.get(0).getMemo());
//                    combMat.setSupp(orderDetlPakins.get(0).getSupp());
//                    combMat.setSuppCode(orderDetlPakins.get(0).getSuppCode());
//                    combMat.setManu(orderDetlPakins.get(0).getManu());//仓库编码
//                } else {
//                    throw new CoolException("未查询到相关订单===>>" + param.getBarcode());
//                }
                List<OrderDetlPakin> orderDetlPakins = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>()
                        .eq("matnr", combMat.getMatnr()).eq("box_type3", combMat.getOrderNo())
                        .eq("standby1", combMat.getStandby1()).eq("standby2", combMat.getStandby2())
                        .eq("standby3", combMat.getStandby3()).eq("box_type2","BU-00001"));//1时检索和得
                        .eq("standby3", combMat.getStandby3()).eq("box_type2","shyucheng.test"));
                if (orderDetlPakins.size() > 0) {
                    orderNo = orderDetlPakins.get(0).getOrderNo();
                    combMat.setBoxType1(orderDetlPakins.get(0).getBoxType1());
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
@@ -46,6 +46,13 @@
        //遍历单据
        for (String orderNo : orderNos) {
            OrderPakin orderPakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>().eq("order_no",orderNo));
            if(orderPakin.getDocType() == 16){
                orderPakin.setMoveStatus(1);
                orderPakinService.updateById(orderPakin);
                continue;
            }
            try{
                List<OrderDetlPakin> orderDetlPakinListAll = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no",orderNo).eq("inspect",0));
                if (orderDetlPakinListAll.size()<1){
@@ -77,7 +84,7 @@
                            return;
                        } else if (number == 0){
                            Integer status =  basArmRulesService.getStatus(orderDetl.getWeight(),orderDetl.getVolume(),orderDetl.getManLength(),orderDetl.getWidth(),orderDetl.getHeight());
                            Integer status =  basArmRulesService.getStatus(mat.getWeight(),mat.getVolume(),mat.getManLength(),mat.getWidth(),mat.getHeight());
                            if (!Cools.isEmpty(status) && status == 2){
                                continue;
                            } else {
src/main/java/com/zy/asrs/task/WrkMastStaInItScheduler.java
@@ -12,10 +12,8 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * Created by Monkey D. Luffy on 2023.07.25
@@ -58,7 +56,7 @@
        put(1005, 1007);put(1008, 1010);put(1019, 1021);put(1022, 1024);put(1029, 1031);
        put(2001, 2003);put(2007, 2009);put(2013, 2015);put(2019, 2021);put(2025, 2027);
        put(2003, 2003);put(2009, 2009);put(2015, 2015);put(2021, 2021);put(2027, 2027);
        put(1105,1105);put(1104,1105);put(1043,1042);put(1042,1042);
        put(1105,1105);put(1104,1105);put(1043,1042);put(1042,1042);put(1103,1105);put(1044,1042);
    }};
    public static final Map<Integer, Integer> siteInMap = new HashMap<Integer, Integer>() {{
        put(1043, 1042);put(1042, 1042);put(1044, 1042);put(1105, 1105);put(1104, 1105);
@@ -85,8 +83,10 @@
//    }};
    @Scheduled(cron = "0/3 * * * * ? ")
    @Scheduled(cron = "0/2 * * * * ? ")
    private void execute(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String currentTime = sdf.format(new Date());
        for(Integer staNo : STA_WORK_IN){
            BasDevp basDevp = basDevpService.selectById(staNo);
            basDevp.setDevNo(siteInMap.get(basDevp.getDevNo()));
@@ -95,7 +95,6 @@
                if(Cools.isEmpty(wrkMast)){
                    continue;
                }
//                boolean wrkTypeSign = fullKM(wrkMast);
                if (!Cools.isEmpty(wrkMast)){
                    ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,21);//入库
                    if (result.getCode()==200){
@@ -115,19 +114,12 @@
                if (Cools.isEmpty(wrkMast)){
                    continue;
                }
//                if (wrkMast.getWrkSts()!=2 || wrkMast.getIoType()==10){
//                    continue;
//                }
//                boolean wrkTypeSign = fullKM(wrkMast);
                if (!Cools.isEmpty(wrkMast)){
//                    if (wrkTypeSign){
                        ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,22);//出库
                        if (result.getCode()==200) {
                            continue;
                        } else {
                            System.out.println(staNo+"失败3!");
                            System.out.println(staNo+"失败2!");
                        }
                }
            }
@@ -137,7 +129,12 @@
            basDevp.setDevNo(siteOutMap.get(basDevp.getDevNo()));
            if (basDevp.getWrkNo() > 10000 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
                ReturnT<String> result = wrkMastStaInItHandler.start(null,basDevp,23);//异常退出
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                if (Cools.isEmpty(wrkMast)){
                    continue;
                }
                if (result.getCode()==200) {
                    System.out.println(staNo + "时间!" + currentTime);
                    continue;
                } else {
                    System.out.println(staNo+"失败3!");
src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
@@ -18,7 +18,8 @@
    @Value("${erp.switch.InboundOrderSwitch}")
    private boolean InboundOrderSwitch;
    @Scheduled(cron = "0 */15 * * * ?")
    @Scheduled(cron = "0 */30 * * * ?")
//    @Scheduled(cron = "0/20 * * * * ?")
    void login(){
        if(!InboundOrderSwitch){
            return;
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -49,6 +49,8 @@
                        if (!result.isSuccess()) {
                            log.error("单据[orderNo={}]新增保存至erp失败", order.getOrderNo());
                        }
//                        order.setSettle(8L);
//                        orderService.updateById(order);
                    }else if( order.getDocType() == 21){  //导入订单出库(领料)
                        order.setSettle(8L);
                        orderService.updateById(order);
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -156,11 +156,14 @@
                    path = orgAddress;
                    break;
                case "PUR_RECEIVEBIll": //已审核收料单查询
                    jsonObject.put("start_biztime",  "2025-01-01 00:00:00");//业务起始日期
                    jsonObject.put("start_biztime",  latestUpdateTime);//业务起始日期
//                    jsonObject.put("start_biztime",  "2025-01-01 00:00:00");//业务起始日期
//                    jsonObject.put("start_auditdate",  "2025-01-01 00:00:00";
                    jsonObject.put("end_biztime", sdf1.format(now));//业务结束日期
                    jsonObject.put("billno", null);
                    jsonObject.put("billstatus", Arrays.asList("C"));//数据状态 [A:暂存, B:已提交, C:已审核]
                    jsonObject.put("start_auditdate", "2025-11-25 00:00:00");
                    jsonObject.put("start_auditdate", latestUpdateTime);
                    jsonObject.put("end_auditdate", sdf1.format(now));
                    jsonObject.put("org_number", null);
                    jsonObject.put("supplier_number", null);
@@ -182,7 +185,7 @@
                    path = imMdcMftproorder;
//                    jsonObject.put("start_modifytime",  "2025-11-25 00:00:00");
//                    jsonObject.put("start_auditdate", "2025-11-25 00:00:00");
                    jsonObject.put("start_createtime", "2025-11-25 00:00:00");
                    jsonObject.put("start_createtime", latestUpdateTime);
                    jsonObject.put("end_createtime", sdf1.format(now));
//                    jsonObject.put("end_auditdate", sdf1.format(now));
//                    jsonObject.put("end_modifytime", sdf1.format(now));
@@ -197,7 +200,7 @@
                    jsonObject.put("billno", null);
                    jsonObject.put("org_number", null);
                    jsonObject.put("billstatus", Arrays.asList("C"));//数据状态 [A:暂存, B:已提交, C:已审核]
                    jsonObject.put("start_createtime", "2025-11-25 00:00:00");
                    jsonObject.put("start_createtime", latestUpdateTime);
                    jsonObject.put("end_createtime", sdf1.format(now));
//                    jsonObject.put("start_modifytime",  "2025-11-25 00:00:00");
//                    jsonObject.put("end_modifytime", sdf1.format(now));
@@ -210,7 +213,7 @@
                    jsonObject.put("billno", null);
                    jsonObject.put("org_number", null);
                    jsonObject.put("billstatus", Arrays.asList("C"));//数据状态 [A:暂存, B:已提交, C:已审核]
                    jsonObject.put("start_createtime", "2025-11-25 00:00:00");
                    jsonObject.put("start_createtime", latestUpdateTime);
                    jsonObject.put("end_createtime", sdf1.format(now));
//                    jsonObject.put("start_modifytime",  "2025-11-25 00:00:00");
//                    jsonObject.put("end_modifytime", sdf1.format(now));
@@ -220,13 +223,13 @@
                case "PRD_MORPT"://生产进仓单
                    path = imProductinbill;
                    jsonObject.put("billstatus", Arrays.asList("C"));//数据状态 [A:暂存, B:已提交, C:已审核]
                    jsonObject.put("modifytime_start", "2025-11-25 00:00:00");
                    jsonObject.put("modifytime_start", latestUpdateTime);
                    jsonObject.put("modifytime_end", sdf1.format(now));
                    break;
                case "STK_InspectionForm"://产品检验
                    path = qcppManuinspec;
                    jsonObject.put("billstatus", Arrays.asList("C"));//数据状态 [A:暂存, B:已提交, C:已审核]
                    jsonObject.put("auditdate_start", "2025-11-25 00:00:00");
                    jsonObject.put("auditdate_start", latestUpdateTime);
                    jsonObject.put("auditdate_end", sdf1.format(now));
                    break;
            }
@@ -611,6 +614,7 @@
                                }
                            }
                        }
                        docType.setUpdateTime(now);
                        docTypeService.updateById(docType);
                    }
                }
@@ -964,6 +968,7 @@
                                }
                            }
                        }
                        docType.setUpdateTime(now);
                        docTypeService.updateById(docType);
                    }
                }
src/main/webapp/views/apiLog/apiLog.html
@@ -35,6 +35,12 @@
                            <input class="layui-input" type="text" name="request" placeholder="请输入(订单号或品号)" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label">result</label>
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="result" placeholder="1/0" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">&emsp;
                        <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
                            <i class="layui-icon">&#xe615;</i>搜索
src/main/webapp/views/order/order.html
@@ -101,6 +101,8 @@
<!--        <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>
    {{# } }}
<!--    <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a>-->
    {{# if (d.settle == 98) { }}
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">彻底完结</a>
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="continueExecution">继续执行</a>