自动化立体仓库 - WMS系统
野心家
2024-12-30 b59c16db71fbe29770d3dfffe3cb468857c2eca2
完善金蝶上报流程
10个文件已修改
99 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderController.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java 3 ●●●●● 补丁 | 查看 | 原始文档 | 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 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderController.java
@@ -675,6 +675,42 @@
        return R.ok();
    }
    @RequestMapping(value = "/order/report")
    @ManagerAuth(memo = "上报")
    public R report(@RequestParam String orderNo) {
        Order order = orderService.selectByNo(orderNo);
        if(Cools.isEmpty(order)){
            return R.parse(BaseRes.EMPTY);
        }
        List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
        if (Cools.isEmpty(orderDetls)) {
            return R.parse(BaseRes.EMPTY);
        }
        int wrkCount = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no",order.getOrderNo()));
        int pakinCount = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("order_no",order.getOrderNo()));
        if (wrkCount > 0 || pakinCount > 0) {
            throw new CoolException("存在作业中数据,不能完结。请检查入库通知档和工作档");
        }
        Boolean boo=true;
        for (OrderDetl orderDetl : orderDetls) {
            if(!orderDetl.getQty().equals(orderDetl.getWorkQty())){
                return R.error("作业数量和完成数量不一致无法上报物料编号:"+orderDetl.getMatnr());
            }
            if((Cools.isEmpty(orderDetl.getPrice())&&orderDetl.getQty()>0)||!orderDetl.getPrice().equals(orderDetl.getQty())){
                boo=false;
            }
            if(Cools.isEmpty(orderDetl.getPrice())){
                orderDetl.setPrice(0.0);
                orderDetlService.updateById(orderDetl);
            }
        }
        if(boo){
            return R.error("没有需要上传的数据");
        }
        order.setMemo("0");//状态转换成开始下推
        orderService.updateById(order);
        return R.ok();
    }
}
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -129,9 +129,9 @@
    private String unit;
    /**
     * 单价
     * 已上报数量
     */
    @ApiModelProperty(value= "单价")
    @ApiModelProperty(value= "已上报数量")
    private Double price;
    /**
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -177,6 +177,7 @@
            orderDetl.setCreateTime(now);
            orderDetl.setUpdateBy(9527L);
            orderDetl.setUpdateTime(now);
            orderDetl.setPrice(0.0);
            LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName()));
            if (Cools.isEmpty(locOwner)){
                throw new CoolException("生成单据明细失败,请联系管理员");
@@ -305,6 +306,7 @@
            orderDetl.setUpdateTime(now);
            orderDetl.setStatus(1);
            orderDetl.setQty(0.0D);
            orderDetl.setPrice(0.0);//初始化已上报数量
            orderDetl.setOwner(detlDto.getOwner());
            orderDetl.setBeBatch(detlDto.getBeBatch());
            orderDetl.setWeight(detlDto.getWeight());
@@ -421,6 +423,7 @@
            orderDetl.setCreateTime(now);
            orderDetl.setUpdateBy(9527L);
            orderDetl.setUpdateTime(now);
            orderDetl.setPrice(0.0);
            LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName()));
            if (Cools.isEmpty(locOwner)){
                throw new CoolException("生成单据明细失败,请联系管理员");
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -38,16 +38,12 @@
        List<Order> orders = orderService.selectCompletemEmo1();
        for (Order order : orders) {
            try{
                if(order.getSettle()==4){
                    order.setMemo("2");
                    order.setUpdateTime(new Date());
                    orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                }else{
                    ReturnT<String> result = saveOrderSyncHandler.start(order);
                    if (!result.isSuccess()) {
                        log.error("单据[orderNo={}]保存至erp失败", order.getOrderNo());
                    }
                }
            }catch (Exception e){
                Order order1 = orderService.selectById(order.getId());
                order1.setUpdateTime(new Date());
src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java
@@ -76,7 +76,6 @@
//            return SUCCESS;
//        }
        //条件拼接
        log.info("条件拼接");
        String entryIds = null;
        if (kingDeeUtilType.entryId==1){
            List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
@@ -103,8 +102,6 @@
        jsonObject.put("FormId",kingDeeUtilType.formId);
        jsonObject.put("data", dataJsonObject);
        String add = jsonObject.toJSONString();
        log.info("条件拼接:"+jsonObject);
        //下推
        log.info("下推");
        String response = "";
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
@@ -93,10 +93,10 @@
                JsonNode rootNode = objectMapper.readTree(response);
                boolean bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
                log.info("审核bool:" + bool);
                //审核完成原订单2转3  3.审核完成
                //审核完成原订单3转4  4.审核完成
                if (bool) {
                    success = true;
                    order.setMemo("3");//审核完成
                    order.setMemo("4");//审核完成
                    order.setUpdateTime(new Date());
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -108,7 +108,11 @@
            orderedMap.put("FMATERIALID", jsonObjectFMATERIALID);
            orderedMap.put("FSTOCKID", jsonObjectFSTOCKID);
            orderedMap.put("FLOT", jsonObjectFLOT);
            orderedMap.put("FQty", orderDetl.getQty());                    // 将"FQty"放到最后
            if(orderDetl.getQty().equals(0.0)){
                orderedMap.put("FQty", orderDetl.getQty());
            }else{
                orderedMap.put("FQty", orderDetl.getQty()-orderDetl.getPrice());    // 将"FQty"放到最后
            }
            JSONObject jsonObjectEnd = new JSONObject(orderedMap);
@@ -153,18 +157,35 @@
            Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
            String bool1=IsSuccess.toString();
            boolean bool = false;
            //保存完成原订单5转6 6.保存完成
            //保存完成原订单1转2 2.保存完成
            if(bool1.equals("true")){
                ObjectMapper objectMapper =  new ObjectMapper();
                JsonNode rootNode = objectMapper.readTree(response);
                bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
                log.info("保存bool:"+bool);
                //提交完成原订单5转6  6.上报完成
                //提交完成原订单1转2  2.上报完成
                if(bool){
                    success = true;
                    order.setSettle(6L);
                    order.setMemo("2");
                    order.setUpdateTime(new Date());
                    orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                    for(OrderDetl orderDetl:orderDetls){
                        orderDetl.setPrice(orderDetl.getQty());
                        orderDetl.setUpdateTime(new Date());
                        if(Cools.isEmpty(orderDetl.getBatch())){
                            orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>()
                                    .eq("order_no",order.getOrderNo())
                                    .eq("matnr",orderDetl.getMatnr()));
                        }else{
                            orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>()
                                    .eq("order_no",order.getOrderNo())
                                    .eq("matnr",orderDetl.getMatnr())
                                    .eq("batch",orderDetl.getBatch()));
                        }
                    }
                }
            }
src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
@@ -91,11 +91,11 @@
                JsonNode rootNode = objectMapper.readTree(response);
                boolean bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
                log.info("审核bool:"+bool);
                //提交完成原订单1转2  2.提交完成
                //提交完成原订单2转3  3.提交完成
                if(bool){
                    success = true;
//                    order.setSettle(7L);
                    order.setMemo("2");
                    order.setMemo("3");
                    order.setUpdateTime(new Date());
                    orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                }
src/main/webapp/static/js/order/order.js
@@ -560,7 +560,7 @@
    // 修改订单状态
    function doModify(orderId, orderNo, settle) {
        layer.confirm('确定要手动完结吗?', {
        layer.confirm('确定要手动上报吗?', {
            shade: .1,
            skin: 'layui-layer-admin'
        }, function (i) {
@@ -569,12 +569,10 @@
            console.log(orderId);
            console.log(settle);
            $.ajax({
                url: baseUrl+"/order/update/auth",
                url: baseUrl+"/order/report",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    id: orderId,
                    orderNo: orderNo,
                    settle: settle
                },
                method: 'POST',
                success: function (res) {
src/main/webapp/views/order/order.html
@@ -94,7 +94,7 @@
        <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>
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">上报</a>
    {{# } }}
<!--    {{# if ((d.settle == 0 || d.settle == 1) && (d.docType == 1 || d.docType == 11 || d.docType == 14 || d.docType == 17 || d.docType == 18)) { }}-->