自动化立体仓库 - WMS系统
Junjie
2023-12-06 828b592b5f8e31204f93bcc2ea0c5866bdc0dcf0
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -116,7 +116,7 @@
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null);
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
@@ -161,7 +161,7 @@
                result.setOrderType(order.getDocType$());
                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                for (OrderDetl orderDetl : orderDetls) {
                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                    //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                }
                if (order.getSettle() == 4L) {
                    // 修改订单状态 4.完成 ===>> 6.已上报
@@ -181,7 +181,7 @@
                result.setOrderType(order.getDocType$());
                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                for (OrderDetl orderDetl : orderDetls) {
                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                    //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                }
                // 修改订单状态 4.完成 ===>> 6.已上报
                if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -251,7 +251,7 @@
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null);
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
@@ -295,7 +295,7 @@
                result.setOrderType(order.getDocType$());
                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                for (OrderDetl orderDetl : orderDetls) {
                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                    //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                }
                if (order.getSettle() == 4L) {
                    // 修改订单状态 4.完成 ===>> 6.已上报
@@ -315,7 +315,7 @@
                result.setOrderType(order.getDocType$());
                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                for (OrderDetl orderDetl : orderDetls) {
                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                    //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                }
                // 修改订单状态 4.完成 ===>> 6.已上报
                if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -532,8 +532,9 @@
            List<DetlDto> detlDtos = new ArrayList<>();
            param.getCombMats().forEach(elem -> {
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
                detlDto.setContainerCode(elem.getContainerCode());
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
                    assert one != null;
                    one.setAnfme(one.getAnfme() + detlDto.getAnfme());
                } else {
@@ -690,7 +691,7 @@
    }
    @Transactional
    public boolean syncOrder(Map<String, Object> param) {
    public boolean syncOrder(Map<String, Object> param, boolean pakin) {
        if(Cools.isEmpty(param) || Cools.isEmpty(param.get("orderDetails"))){
            throw new CoolException("单据参数为空或者单据详情为空,无法生成单据信息");
        }
@@ -699,7 +700,7 @@
            throw new CoolException("该单据已存在,无法生成单据信息");
        }
        Date now = new Date();
        Order order = orderMapping(param,now);
        Order order = orderMapping(param,now,pakin);
        orderService.insert(order);
        List<Map<String, Object>> orderDetails = (List<Map<String, Object>>) param.get("orderDetails");
        orderDetails.forEach(odParam -> {
@@ -727,7 +728,7 @@
        return true;
    }
    private Order orderMapping(Map<String, Object> param, Date now){
    private Order orderMapping(Map<String, Object> param, Date now, boolean pakin){
        Order order = new Order();
        //uuid
        order.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
@@ -739,9 +740,9 @@
        order.setOrderNo(toString(param.get("id")));
        //业务类型
        //order.setDefNumber(param.get("cBusType").toString());
        order.setDefNumber(toString(param.get("cBusType")));
        order.setDefNumber(toString(param.get("cVouchType")));
        //单据类型
        DocType docType = docTypeService.selectOrAdd(param.get("cVouchType").toString(), Boolean.TRUE);
        DocType docType = docTypeService.selectOrAdd(param.get("cBusType").toString(), pakin);
        order.setDocType(docType.getDocId());
        //单据日期
        //order.setOrderTime(param.get("dDate").toString());
@@ -799,13 +800,16 @@
        //od.setAnfme(toString(odParam.get("iQuantity")));
        //行号
        //od.setBrand(odParam.get("irowno").toString());
        od.setBrand(toString(odParam.get("irowno")));
        //od.setBrand(toString(odParam.get("irowno")));
        od.setManu(toString(odParam.get("irowno")));
        //销售订单号
        //od.setColor(odParam.get("csocode").toString());
        od.setColor(toString(odParam.get("csocode")));
        //od.setColor(toString(odParam.get("csocode")));
        od.setThreeCode(toString(odParam.get("csocode")));
        //销售订单行号
        //od.setOrigin(odParam.get("isoseq").toString());
        od.setOrigin(toString(odParam.get("isoseq")));
        //od.setOrigin(toString(odParam.get("isoseq")));
        od.setDeadTime(toString(odParam.get("isoseq")));
        od.setStatus(1);
        od.setQty(0.0D);