diff --git a/ant-design-vue-jeecg/src/views/system/receipt/modules/ReceiptHeaderModal.vue b/ant-design-vue-jeecg/src/views/system/receipt/modules/ReceiptHeaderModal.vue index 9e14b17..f87e3f3 100644 --- a/ant-design-vue-jeecg/src/views/system/receipt/modules/ReceiptHeaderModal.vue +++ b/ant-design-vue-jeecg/src/views/system/receipt/modules/ReceiptHeaderModal.vue @@ -117,8 +117,8 @@ export default { }, methods: { add() { - this.edit(this.modelDefault); - this.model.companyCode = this.companyList[0].code; + let record={companyCode: this.companyList[0].code, type:'YCLR'} + this.edit(record); }, edit(record) { this.model = Object.assign({}, record); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/controller/WcsController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/controller/WcsController.java index 0715b1d..2aa591d 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/controller/WcsController.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/controller/WcsController.java @@ -291,4 +291,28 @@ public class WcsController extends HuahengBaseController { }); return result; } + + /** + * 查询钢托盘是否返回 + */ + @PostMapping("/back") + @ApiOperation("查询托盘是否返回") + @ApiLogger(apiName = "查询托盘是否返回", from = "WCS") + @ResponseBody + public Result back(@RequestBody WcsBack wcsBack) { + String taskNo = wcsBack.getTaskNo(); + int weight = wcsBack.getWeight(); + if (StringUtils.isEmpty(taskNo)) { + return Result.error("没有taskNo值"); + } + String lockKey = taskNo; + Result result = handleMultiProcess("back", lockKey, new MultiProcessListener() { + @Override + public Result<?> doProcess() { + Result result = wcsService.back(taskNo); + return result; + } + }); + return result; + } } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/entity/WcsBack.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/entity/WcsBack.java new file mode 100644 index 0000000..415c7f3 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/entity/WcsBack.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.wms.api.wcs.entity; + +import lombok.Data; + +/** + * @author 游杰 + */ +@Data +public class WcsBack { + private String port; + private String taskNo; + private int weight; +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsService.java index 1823f1d..f3df90d 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsService.java @@ -62,11 +62,13 @@ public interface WcsService { /** * 获取可用巷道 - * @author TanYibin - * @createDate 2023年10月16日 - * @param zoneCode + * @author TanYibin + * @createDate 2023年10月16日 + * @param zoneCode * @return */ Result<List<Integer>> getAvailableRowdway(String zoneCode); + Result back(String taskNo); + } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java index 53cb4bd..45c295b 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java @@ -30,6 +30,8 @@ import org.jeecg.modules.wms.config.material.service.IMaterialService; import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService; import org.jeecg.modules.wms.config.zone.entity.Zone; import org.jeecg.modules.wms.config.zone.service.IZoneService; +import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; +import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService; import org.jeecg.modules.wms.lockStation.service.ILockStationService; import org.jeecg.modules.wms.receipt.receiptContainerHeader.entity.ReceiptContainerDetail; import org.jeecg.modules.wms.receipt.receiptContainerHeader.entity.ReceiptContainerHeader; @@ -49,6 +51,7 @@ import org.springframework.transaction.annotation.Transactional; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import cn.hutool.core.collection.CollUtil; @@ -108,6 +111,9 @@ public class WcsServiceImpl implements WcsService { @Resource private ILockStationService lockStationService; + @Resource + private IInventoryDetailService inventoryDetailService; + /** * 库位分配 * @throws SocketException @@ -334,6 +340,33 @@ public class WcsServiceImpl implements WcsService { @Override @Transactional(rollbackFor = Exception.class) + public Result back(String taskNo) { + TaskHeader taskHeader = taskHeaderService.getById(taskNo); + if (taskHeader == null) { + return Result.error("没有找到任务,不允许回库, 任务号:" + taskNo); + } + // 返回1 表示回库 + // 返回2 表示去叠盘 + int flag = 1; + int taskType = taskHeader.getTaskType(); + if (taskType != QuantityConstant.TASK_TYPE_SORTINGSHIPMENT) { + return Result.error("任务号" + taskNo + "不是分拣任务"); + } + String containerCode = taskHeader.getContainerCode(); + if (StringUtils.isEmpty(containerCode)) { + return Result.error("任务号" + taskNo + "没有托盘号"); + } + List<InventoryDetail> inventoryDetailList = inventoryDetailService.getInventoryDetailListByContainerCode(containerCode, taskHeader.getWarehouseCode()); + if (CollectionUtils.isEmpty(inventoryDetailList)) { + flag = 2; // 返回2 表示叠盘 + return Result.OK("任务ID:" + taskHeader.getId() + " 允许去叠盘", flag); + } + flag = 1; // 返回1 表示回库 + return Result.OK("任务ID:" + taskHeader.getId() + " 允许回库", flag); + } + + @Override + @Transactional(rollbackFor = Exception.class) @OperationLog(bizId = "#taskHeader == null ? '' : #taskHeader.getId()", bizType = "'任务追踪'", tag = "'任务下发'", extra = "''", msg = "#taskHeader == null ? '' : '任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", recordReturnValue = true)