diff --git a/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue index a95365f..0585314 100644 --- a/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue @@ -141,7 +141,10 @@ <a-divider type="vertical"/></a> <a v-if="record.isDoubleIn == 1 && record.exceptionState == 1" v-has="'taskHeader:executeTask'" @click="handleDoubleInTask(record)">修复重入数据 <a-divider type="vertical"/></a> - <a v-if="record.status <= 10" v-has="'taskHeader:cancelTask'" @click="cancelTask(record)" >取消</a> +<!-- <a v-if="record.status <= 10" v-has="'taskHeader:cancelTask'" @click="cancelTask(record)" >取消</a>--> + <a-popconfirm v-if="record.status <= 10" v-has="'taskHeader:cancelTask'" title="确定取消任务吗?" @confirm="() => cancelTask(record)"> + <a>取消</a> + </a-popconfirm> </span> </a-table> 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 2a1baa1..973771e 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 @@ -49,10 +49,12 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import cn.monitor4all.logRecord.annotation.OperationLog; import cn.monitor4all.logRecord.context.LogRecordContext; +import lombok.extern.slf4j.Slf4j; /** * @author 游杰 */ +@Slf4j @Service public class WcsServiceImpl implements WcsService { @@ -96,6 +98,7 @@ public class WcsServiceImpl implements WcsService { msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", recordReturnValue = true) public Result warecellAllocation(WarecellDomain warecellDomain) { + log.info("开始分配库位"); String warehouseCode = warecellDomain.getWarehouseCode(); String zoneCode = warecellDomain.getZoneCode(); String height = warecellDomain.getHeight(); @@ -253,6 +256,7 @@ public class WcsServiceImpl implements WcsService { LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集 LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集 + log.info("完成分配库位,任务号:" + taskNo + ", 库位号:" + locationCode); return Result.OK(wcsTask); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java index 23bd121..e0b51ab 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.wms.receipt.receiptContainerHeader.service.impl; import java.io.Serializable; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -41,6 +42,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.monitor4all.logRecord.annotation.OperationLog; import cn.monitor4all.logRecord.context.LogRecordContext; +import lombok.extern.slf4j.Slf4j; /** * @Description: 入库组盘 @@ -48,6 +50,7 @@ import cn.monitor4all.logRecord.context.LogRecordContext; * @Date: 2022-11-09 * @Version: V1.0 */ +@Slf4j @Service public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContainerHeaderMapper, ReceiptContainerHeader> implements IReceiptContainerHeaderService { @@ -107,6 +110,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", condition = "#taskDetailList.size() > 0", recordReturnValue = true) public Result<TaskHeader> createReceiptTask(ReceiptContainerHeader receiptContainerHeader, String warehouseCode) { + log.info("开始创建入库任务"); if (!receiptContainerHeader.getWarehouseCode().equals(warehouseCode)) { return Result.error("id:" + receiptContainerHeader.getId() + "的入库组盘不能在" + warehouseCode + "仓库操作"); } @@ -201,8 +205,10 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai if (receiptDetail == null) { throw new JeecgBootException("根据id:" + receiptContainerDetail.getReceiptDetailId() + ",没有找到入库单详情"); } + Integer receiptId = receiptDetail.getReceiptId(); receiptDetail = new ReceiptDetail(); - receiptDetail.setReceiptId(receiptContainerDetail.getReceiptDetailId()); + receiptDetail.setId(receiptContainerDetail.getReceiptDetailId()); + receiptDetail.setReceiptId(receiptId); receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_WAIT_SHELF); receiptDetailList.add(receiptDetail); } @@ -239,6 +245,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai LogRecordContext.putVariable("extraJsonString1", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 LogRecordContext.putVariable("taskDetailList", taskDetailList);// 操作日志收集 LogRecordContext.putVariable("extraJsonString2", JSON.toJSONString(taskDetailList));// 操作日志收集 + log.info("完成创建入库任务"); return Result.OK("生成入库任务成功", taskHeader); } @@ -313,6 +320,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务取消'", extra = "#extraJsonString", msg = "'任务ID:' + #taskHeader.getId()", condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true) public boolean cancelReceiptTask(TaskHeader taskHeader) { + log.info("开始取消入库任务"); ReceiptContainerHeader receiptContainerHeader = getById(taskHeader.getReceiptContainerHeaderId()); if (receiptContainerHeader == null) { return false; @@ -339,9 +347,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai if (receiptDetail == null) { throw new JeecgBootException("取消入库任务时, 没有找到入库单详情" + receiptContainerDetail.getReceiptDetailId()); } + Integer receiptId = receiptDetail.getReceiptId(); receiptDetail = new ReceiptDetail(); receiptDetail.setId(receiptContainerDetail.getReceiptDetailId()); receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING); + receiptDetail.setReceiptId(receiptId); receiptDetailList.add(receiptDetail); } if (receiptDetailList.size() != 0) { @@ -360,6 +370,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai } LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集 LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 + log.info("完成取消入库任务"); return true; } @@ -367,6 +378,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai @Transactional(rollbackFor = JeecgBootException.class) @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情取消组盘'", extra = "#extraJsonString", msg = "''", recordReturnValue = true) public Result cancelReceiving(Integer id) { + log.info("开始取消入库组盘"); ReceiptContainerHeader receiptContainerHeader = getById(id); if (receiptContainerHeader == null) { return Result.error("取消组盘失败,没有找到入库组盘头ID:" + id); @@ -376,7 +388,6 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai return Result.error("取消组盘失败,已经生成入库任务"); } List<ReceiptContainerDetail> receiptContainerDetailList = receiptContainerDetailService.getReceiptContainerDetailListByHeaderId(id); - List<ReceiptDetail> receiptDetailList = new ArrayList<ReceiptDetail>(); for (ReceiptContainerDetail receiptContainerDetail : receiptContainerDetailList) { if (receiptContainerDetail == null) { throw new JeecgBootException("取消组盘失败, 没有找到入库组盘详情"); @@ -385,25 +396,27 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai if (receiptDetail == null) { throw new JeecgBootException("取消组盘失败, 没有找到入库详情ID:" + receiptContainerDetail.getReceiptDetailId()); } + BigDecimal taskQty = receiptDetail.getTaskQty(); + Integer receiptId = receiptDetail.getReceiptId(); receiptDetail = new ReceiptDetail(); receiptDetail.setId(receiptContainerDetail.getReceiptDetailId()); receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_BUILD); - receiptDetail.setTaskQty(receiptDetail.getTaskQty().subtract(receiptContainerDetail.getQty())); + receiptDetail.setTaskQty(taskQty.subtract(receiptContainerDetail.getQty())); if (!receiptDetailService.updateById(receiptDetail)) { throw new JeecgBootException("取消组盘失败, 更新入库明细失败,入库详情ID:" + receiptContainerDetail.getReceiptDetailId()); } if (!receiptContainerDetailService.removeById(receiptContainerDetail.getId())) { throw new JeecgBootException("取消组盘失败, 删除入库组盘明细表失败,组盘详情ID:" + receiptContainerDetail.getId()); } - if (!receiptHeaderService.updateReceiptHeaderStatus(receiptDetail.getReceiptId())) { - throw new JeecgBootException("取消组盘失败, 更新入库单头失败,入库单ID:" + receiptDetail.getReceiptId()); + if (!receiptHeaderService.updateReceiptHeaderStatus(receiptId)) { + throw new JeecgBootException("取消组盘失败, 更新入库单头失败,入库单ID:" + receiptId); } - receiptDetailList.add(receiptDetail); } if (!this.removeById(id)) { throw new JeecgBootException("取消组盘失败, 删除入库组盘头表失败,组盘ID:" + id); } LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList)); + log.info("完成取消入库组盘"); return Result.ok("取消组盘成功"); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java index 3468854..36b9317 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java @@ -3,6 +3,7 @@ package org.jeecg.modules.wms.receipt.receiving.service.impl; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import javax.annotation.Resource; @@ -40,10 +41,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.monitor4all.logRecord.annotation.OperationLog; import cn.monitor4all.logRecord.context.LogRecordContext; +import lombok.extern.slf4j.Slf4j; /** * @author 游杰 */ +@Slf4j @Service public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> implements IReceiveService { @@ -104,7 +107,8 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl @OperationLog(bizId = "''", bizType = "'物料追踪'", tag = "'入库组盘'", extra = "#extraJsonString", msg = "''", recordReturnValue = true) @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情组盘'", extra = "#extraJsonString", msg = "''", recordReturnValue = true) public Result<ReceiptContainerHeader> receiving(List<Receive> receiveList, String warehouseCode) { - boolean result = false; + log.info("开始入库组盘"); + boolean success = false; if (receiveList == null || receiveList.size() == 0) { return Result.error("入库组盘,收货信息为空"); } @@ -157,8 +161,8 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl receiptContainerHeader.setToLocationCode(fromLocationCode); } } - result = receiptContainerHeaderService.save(receiptContainerHeader); - if (!result) { + success = receiptContainerHeaderService.save(receiptContainerHeader); + if (!success) { throw new JeecgBootException("入库组盘,保存入库组盘头失败"); } } @@ -207,8 +211,10 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl receiptDetail.setTaskQty(receiptTaskQty); ReceiptDetail receiptDetail1 = new ReceiptDetail(); + receiptDetail1.setReceiptId(receiptDetail.getReceiptId()); receiptDetail1.setId(receiptDetail.getId()); receiptDetail1.setTaskQty(receiptTaskQty); + receiptDetail1.setStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING); receiptDetailList.add(receiptDetail1); LambdaQueryWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); @@ -250,17 +256,24 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl if (CollectionUtils.isEmpty(receiptDetailList)) { throw new JeecgBootException("入库组盘,请填入收货数量"); } - result = receiptDetailService.updateBatchById(receiptDetailList); - if (!result) { + success = receiptDetailService.updateBatchById(receiptDetailList); + if (!success) { throw new JeecgBootException("入库组盘,批量更新入库单详情失败"); } + List<Integer> receiptIdList = receiptDetailList.stream().map(ReceiptDetail::getReceiptId).distinct().collect(Collectors.toList()); + for (Integer receiptId : receiptIdList) { + if (!receiptHeaderService.updateReceiptHeaderStatus(receiptId)) { + throw new JeecgBootException("入库组盘, 更新入库单明细失败"); + } + } if (receiptContainerDetailList.size() > 0) { - result = receiptContainerDetailService.saveBatch(receiptContainerDetailList); - if (!result) { + success = receiptContainerDetailService.saveBatch(receiptContainerDetailList); + if (!success) { throw new JeecgBootException("入库组盘,保存入库组盘详情失败"); } } LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList)); - return Result.OK("收货成功", receiptContainerHeader); + log.info("完成入库组盘"); + return Result.OK("入库组盘成功", receiptContainerHeader); } }