zhou zhou
6 小时以前 f85b03552c97f935e2c5102dee08648d6ab8e782
#pda成品直送
4个文件已修改
81 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java
@@ -224,5 +224,11 @@
        return pdaOutStockService.productionDirectDelivery(param,getLoginUserId());
    }
    @PostMapping("/orderOut/finishedProductDirectOutput")
    @ApiOperation("成品直出")
    public R finishedProductDirectOutput(@RequestBody PdaGeneralParam param) {
        return pdaOutStockService.finishedProductDirectOutput(param,getLoginUserId());
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java
@@ -27,5 +27,7 @@
    R getStationArea(PdaGeneralParam param);
    R productionDirectDelivery(PdaGeneralParam param,Long loginUserId);
    R finishedProductDirectOutput(PdaGeneralParam param, Long loginUserId);
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
@@ -421,6 +421,76 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R finishedProductDirectOutput(PdaGeneralParam param, Long loginUserId) {
        WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
                .eq(WkOrder::getCode, param.getOrderNo())
                .eq(WkOrder::getType,OrderType.ORDER_OUT.type)
        );
        if (null == order) {
            throw new CoolException("未找到对应订单");
        }
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add(param.getStationAreaId().toString());
        Task task = new Task();
        String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null);
        task.setTaskCode(ruleCode)
                .setOrgSite(param.getSta1())
                .setSort(Constants.TASK_SORT_DEFAULT_VALUE)
                .setUpdateBy(loginUserId)
                .setCreateBy(loginUserId)
                .setCreateTime(new Date())
                .setUpdateTime(new Date())
                .setTaskStatus(TaskStsType.MISSION_INITIAL.id)
                .setBarcode(param.getContainerNo())
                .setTargSiteArea(arrayList)
                .setTaskType(TaskType.TASK_TYPE_FPDO.type);
        if (!taskService.save(task)) {
            throw new CoolException("任务创建失败!!");
        }
        List<TaskItem> taskItems = new ArrayList<>();
        param.getWkOrderItems().forEach(item -> {
            TaskItem taskItem = new TaskItem();
            BeanUtils.copyProperties(item, taskItem);
            taskItem.setTaskId(task.getId())
                    .setAnfme(item.getDemandQty())
                    .setWorkQty(0D)
                    .setBatch(item.getBatch())
                    .setUpdateBy(loginUserId)
                    .setCreateBy(loginUserId)
                    .setCreateTime(new Date())
                    .setUpdateTime(new Date())
                    .setSplrBatch(item.getBatch())
                    .setPlatWorkCode(item.getPlatWorkCode())
                    .setPlatItemId(item.getPlatItemId())
                    .setOrderType(OrderType.ORDER_OUT.type)
                    .setWkType(Short.parseShort(order.getWkType()))
                    .setSourceCode(order.getCode())
                    .setSourceId(order.getId());
            taskItems.add(taskItem);
            item.setWorkQty(item.getWorkQty()+item.getDemandQty());
        });
        if (!taskItemService.saveBatch(taskItems)) {
            throw new CoolException("任务明细生成失败!!");
        }
        if (!order.getExceStatus().equals(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val)) {
            order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
            order.setUpdateBy(loginUserId);
            order.setUpdateTime(new Date());
            if (!asnOrderService.updateById(order)){
                throw new CoolException("单据状态更新失败!!");
            }
        }
        if (!asnOrderItemService.updateBatchById(param.getWkOrderItems())) {
            throw new CoolException("单据明细更新失败!!");
        }
        return R.ok();
    }
    @Override
    public R getWaveListItem(String barcode) {
        LambdaQueryWrapper<Wave> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(!Cools.isEmpty(barcode), Wave::getCode, barcode);
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
@@ -22,6 +22,7 @@
    TASK_TYPE_CROSS_DOCKING_OUT("109", "备货"),
    TASK_TYPE_EMPTY_OUT("110", "空板出库"),
    TASK_TYPE_PDD("111", "生产直送"),
    TASK_TYPE_FPDO("112", "成品直出"),
    ;
    public Integer type;
    public String desc;
@@ -53,6 +54,8 @@
            return TaskType.TASK_TYPE_EMPTY_OUT.desc;
        }else if (TaskType.TASK_TYPE_PDD.type.equals(type)) {
            return TaskType.TASK_TYPE_PDD.desc;
        }else if (TaskType.TASK_TYPE_FPDO.type.equals(type)) {
            return TaskType.TASK_TYPE_FPDO.desc;
        }
        return null;