自动化立体仓库 - WMS系统
#
whycq
2024-05-13 24c2fd8ab62fa12ae96658664e7ffd478bef6e62
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -156,27 +156,9 @@
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        MatSyncParam matSyncParam = openService.syncMat(param);
        if (Cools.isEmpty(matSyncParam.getMats()) || matSyncParam.getMats().size() <=0 ) {
            return R.error("数据异常");
        }
        StringBuilder Msg= new StringBuilder("原因:");
        int MsgT=0,MsgF=0;
        for (MatSyncParam.Mats matParam:matSyncParam.getMats()){
            if (matParam.isType()){
                MsgT++;
            }else {
                MsgF++;
                Msg.append(matParam.getMatnr()).append(":").append(matParam.getMemo()).append(";");
            }
        }
        if (MsgF==0){
            return R.ok("成功接收物料:"+MsgT+"个");
        }else if (MsgT==0){
            return R.ok("接收物料失败:"+MsgF+"个;"+Msg);
        }else {
            return R.ok("成功接收物料:"+MsgT+"个;"+"接收物料失败:"+MsgF+"个;"+Msg);
        }
        openService.syncMat(param);
        return R.ok("更新成功");
    }
@@ -299,23 +281,23 @@
    @PostMapping("/order/pakin/default/v1")
    @AppAuth(memo = "生成入库单据")
    public synchronized R orderPakin(@RequestHeader(required = false) String appkey,
                                        @RequestBody(required = false) Map<String, Object> param,
                                        @RequestBody(required = true) OrderSyncParam param,
                                        HttpServletRequest request){
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        openService.syncOrder(param,true);
        openService.syncOrder(param,true,"采购入库单");
        return R.ok("入库单据接受成功");
    }
    @PostMapping("/order/pakout/default/v1")
    @AppAuth(memo = "生成出库单据")
    @AppAuth(memo = "同步工单单据")
    public synchronized R orderPakout(@RequestHeader(required = false) String appkey,
                                     @RequestBody(required = false) Map<String, Object> param,
                                     @RequestBody(required = false) OrderProdSyncParam param,
                                     HttpServletRequest request){
        auth(appkey, param, request);
@@ -323,7 +305,9 @@
            return R.parse(BaseRes.PARAM);
        }
        openService.syncOrder(param,false);
        openService.syncOrder(mappingPakInOrderParam(param),true,"生产入库单");
        openService.syncOrder(mappingPakOutOrderParam(param),false,"生产出库单");
        return R.ok("出库单据接受成功");
@@ -349,4 +333,54 @@
    }
    private OrderSyncParam mappingPakInOrderParam(OrderProdSyncParam param){
        //生成单据主体
        OrderSyncParam orderSyncParam = new OrderSyncParam();
        orderSyncParam.setCPOID(param.getOrderNoT());
        orderSyncParam.setDdate(param.getOrderTime());
        orderSyncParam.setCMemo("");
        //生成单据明细
        OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
        orderDetl.setCInvCode(param.getCInvCode());
        orderDetl.setIQuantity(param.getIQuantity());
        orderDetl.setCsocode(param.getCsocode());
        orderDetl.setBFree1(null);
        //添加单据明细到单据主体
        List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
        orderDetls.add(orderDetl);
        orderSyncParam.setChildren(orderDetls);
        return orderSyncParam;
    }
    private OrderSyncParam mappingPakOutOrderParam(OrderProdSyncParam param){
        OrderSyncParam orderSyncParam = new OrderSyncParam();
        List<OrderProdSyncParam.ChildInfo> child = param.getChild();
        //生成单据主体
        orderSyncParam.setCPOID(child.get(0).getOrderNoT());
        orderSyncParam.setDdate(param.getOrderTime());
        orderSyncParam.setCMemo("");
        //生成单据明细
        List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
        for(OrderProdSyncParam.ChildInfo childInfo : child){
            OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
            orderDetl.setCInvCode(childInfo.getCInvCode());
            orderDetl.setIQuantity(childInfo.getIQuantity());
            orderDetl.setCsocode(param.getCsocode());
            orderDetl.setBFree1(childInfo.getBFree1());
            orderDetl.setID(childInfo.getIDs() + "");
            orderDetls.add(orderDetl);
        }
        orderSyncParam.setChildren(orderDetls);
        return orderSyncParam;
    }
}