1
15 小时以前 1fe0e87293c9f89ca29c4e29299c700e6115aee3
lsh#
3个文件已修改
90 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/InBoundController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/InBoundService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/InBoundServiceImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/InBoundController.java
@@ -1,5 +1,6 @@
package com.vincent.rsf.server.api.controller.pda;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.api.entity.params.PdaGeneralParam;
import com.vincent.rsf.server.api.service.InBoundService;
@@ -35,4 +36,16 @@
        return inBoundService.checkAgvStation(param, getLoginUserId());
    }
    @PostMapping("/check/non/order")
    @ApiOperation("非订单出库")
    public R checkNonOrder(@RequestBody PdaGeneralParam param) {
        if (Cools.isEmpty(param.getTransferStationNo())) {
            return R.error("目标站点为空!!!");
        }
        if (Cools.isEmpty(param.getLocNo())) {
            return R.error("请选择起点库位!!!");
        }
        return inBoundService.checkNonOrder(param, getLoginUserId());
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/InBoundService.java
@@ -11,4 +11,5 @@
    R generateTasks(PdaGeneralParam param, Long loginUserId);
    R checkAgvStation(PdaGeneralParam param, Long loginUserId);
    R checkNonOrder(PdaGeneralParam param, Long loginUserId);
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/InBoundServiceImpl.java
@@ -25,6 +25,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -48,7 +49,11 @@
    @Autowired
    private LocService locService;
    @Autowired
    private LocItemService locItemService;
    @Autowired
    private TaskService taskService;
    @Autowired
    private TaskItemService taskItemService;
    private BasStation checkStaStatus(String barcode, String sta) {
@@ -285,4 +290,75 @@
        return R.ok(basStation);
    }
    @Override
    public R checkNonOrder(PdaGeneralParam param, Long loginUserId) {
        BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                .eq(BasStation::getStationName, param.getTransferStationNo()));
        if (Objects.isNull(station) || !station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type) ) {
            throw new CoolException("目标站点不存在或站点不处于空库状态!!");
        }
        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, param.getLocNo()));
        if (Objects.isNull(loc) || !loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type) ) {
            throw new CoolException("起点库位不存在或不处于在库状态!!");
        }
        List<LocItem> itemParams = locItemService.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocId, loc.getId()));
        if (itemParams.isEmpty()) {
            throw new CoolException("起点库位库存明细为空,异常!!");
        }
        Task task = new Task();
        String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null);
        if (StringUtils.isBlank(ruleCode)) {
            throw new CoolException("任务号不能为空!!");
        }
        task.setOrgLoc(loc.getCode())
                .setTaskCode(ruleCode)
                .setOrgLoc(loc.getCode())
                .setTargSite(station.getStationName())
                .setResource(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val)
                .setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type)
                .setTaskStatus(TaskStsType.MISSION_INITIAL.id)
                .setWarehType(WarehType.WAREHOUSE_TYPE_AGV.val)
                .setBarcode(param.getContainerNo())
                .setCreateTime(new Date())
                .setUpdateBy(loginUserId)
                .setUpdateTime(new Date())
                .setCreateBy(loginUserId)
                .setBarcode(loc.getBarcode());
        if (!taskService.save(task)) {
            throw new CoolException("盘点任务生成失败!!");
        }
        List<TaskItem> taskItems = new ArrayList<>();
        for (LocItem item : itemParams) {
            TaskItem taskItem = new TaskItem();
            BeanUtils.copyProperties(item, taskItem);
            taskItem.setTaskId(task.getId())
                    .setAnfme(item.getAnfme())
                    .setBatch(item.getBatch())
                    .setUpdateBy(loginUserId)
                    .setSourceId(item.getLocId())
                    .setSourceCode(item.getLocCode())
                    .setSource(item.getId())
                    .setUpdateTime(new Date())
                    .setSplrBatch(item.getBatch())
                    .setPlatWorkCode(item.getPlatWorkCode())
                    .setPlatItemId(item.getPlatItemId())
                    .setOrderType(OrderType.ORDER_IN.type)
                    .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type));
            taskItems.add(taskItem);
        }
        if (!taskItemService.saveBatch(taskItems)) {
            throw new CoolException("任务明细保存失败!!");
        }
        loc.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
        if (!locService.updateById(loc)) {
            throw new CoolException("库位预约出库失败!!");
        }
        return R.ok();
    }
}