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();