skyouc
2 天以前 0cf1c13ac668cdb689b073c3961592d8ab41316c
拣料出库任务优化
1 文件已重命名
5个文件已修改
60 ■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/utils/LocUtils.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocType.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java
@@ -65,6 +65,22 @@
    }
    /**
     * 接收WCS调度,回传执行状态
     *  //TODO 1. 拣料出库,再入库执行,修改状态为199.任务完成  并记录入库站点(源站点),添加任务号参数
     *
     * @param param
     * @return
     */
    @ApiOperation("接收WCS调度,回传执行状态")
    @PostMapping("/exce/status")
    public R receiveTask(@RequestBody TaskInParam param) {
        if (Cools.isEmpty(param)) {
            return R.error("参数不能为空!!");
        }
        return R.ok();
    }
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java
@@ -1,14 +1,33 @@
package com.vincent.rsf.server.api.controller.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@ApiModel(value = "TaskInParam", description = "WCS调度参数")
public class TaskInParam {
    @ApiModelProperty("作业类型")
    private Integer ioType;  //作业类型
    @ApiModelProperty("作业站点 or 来源站点")
    private Integer sourceStaNo; //作业站点 or 来源站点
    @ApiModelProperty("容器条码")
    private String barcode; //容器条码
    @ApiModelProperty("库位类型")
    private Integer locType1; //库位类型
    @ApiModelProperty("任务编码")
    private String taskCode;
//    @ApiModelProperty("库位类型")
//    private String locType;
    private Long user;
//    private Integer locType2; //库位类型
//    private Integer locType3; //库位类型
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
@@ -118,7 +118,6 @@
    }
    /**
     * 验证设备站点
     */
@@ -298,6 +297,7 @@
//            waitPakinItems.forEach(item -> {
//                TaskItem taskItem = new TaskItem();
//                BeanUtils.copyProperties(item, taskItem);
////                AsnOrder order = asnOrderService.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getId, item.getAsnId()));
////                if (Objects.isNull(order)) {
////                    throw new CoolException("数据错误: 单据不存在!!");
@@ -327,9 +327,9 @@
//        locNo.setWorkNo(ruleCode);
//        return locNo;
//    }
    public InTaskMsgDto getLocNo(TaskInParam param) {
        String matnr = null; String batch = null;
        String matnr = null;
        String batch = null;
        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, param.getBarcode()));
        if (Cools.isEmpty(waitPakins) && param.getIoType().equals(TaskType.TASK_TYPE_IN.type)) {
            throw new CoolException("未找到组托信息,请组托");
rsf-server/src/main/java/com/vincent/rsf/server/api/utils/LocUtils.java
@@ -150,6 +150,7 @@
        // 如果源库位是高库位,目标库位是低库位
        return dto.getLocType1().equals(Integer.parseInt(loc.getType()));
    }
    public static String zerofill(String msg, Integer count) {
        if (msg.length() == count) {
            return msg;
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocType.java
File was renamed from rsf-server/src/main/java/com/vincent/rsf/server/system/enums/LocType.java
@@ -1,4 +1,4 @@
package com.vincent.rsf.server.system.enums;
package com.vincent.rsf.server.manager.enums;
/**
 * @author Ryan
@@ -19,7 +19,7 @@
        this.desc = desc;
    }
    private String type;
    public String type;
    private String desc;
    public String desc;
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -3,19 +3,20 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.server.api.controller.params.TaskInParam;
import com.vincent.rsf.server.manager.enums.*;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.utils.LocUtils;
import com.vincent.rsf.server.manager.controller.params.GenerateTaskParams;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.mapper.TaskItemMapper;
import com.vincent.rsf.server.manager.mapper.TaskMapper;
import com.vincent.rsf.server.manager.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vincent.rsf.server.manager.utils.LocManageUtil;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.enums.LocStsType;
import com.vincent.rsf.server.manager.enums.LocType;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import lombok.Synchronized;
import org.apache.commons.lang3.StringUtils;
@@ -398,7 +399,6 @@
                    complateOutStock(task);
                } else if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_IN.type)) {
                    //拣料出库
                    //
                    pickTask(task.getId());
                    //移除原始库存
                    complateOutStock(task);
@@ -570,11 +570,17 @@
                .setTaskType(TaskType.TASK_TYPE_PICK_IN.type)
                .setBarcode(task.getBarcode())
                .setTaskStatus(TaskStsType.GENERATE_IN.id);
        //TODO 后续需根据仓库类型查找新库位,原始库位置空闲状态 {
        // TaskInParam param = new TaskInParam();
        //        param.setSourceStaNo(Integer.parseInt(task.getOrgSite()))
        //                .setIoType(Integer.parseInt(TaskType.TASK_TYPE_IN.type + ""));
        ////                .setLocType1(LocType.LOC_TYPE_LOW.type);}
        if (!this.updateById(task)) {
            throw new CoolException("任务状态更新失败!!");
        }
        //TODO 后续需根据仓库类型查找新库位,原始库位置空闲状态
        List<LocItemWorking> workings = new ArrayList<>();
        for (LocItem item : locItems) {
            LocItemWorking working = new LocItemWorking();