diff --git a/ant-design-vue-jeecg/src/views/system/stocktaking/CycleCountDetailList.vue b/ant-design-vue-jeecg/src/views/system/stocktaking/CycleCountDetailList.vue index 1d8c25f..4bb22e3 100644 --- a/ant-design-vue-jeecg/src/views/system/stocktaking/CycleCountDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/stocktaking/CycleCountDetailList.vue @@ -77,8 +77,8 @@ <cycle-count-detail-chi-id-modal ref="adjustmentModal" @ok="modalFormOk" :id="record.id"/> <a @click="createMany()"><a-icon/>新增</a> <a-divider type="vertical"/> - <a v-if="record.enableStatus === 1" @click="selectPort(record)">生成盘点任务</a> - <a-divider v-if="record.enableStatus === 1" type="vertical"/> + <a v-if="record.enableStatus == '1'" @click="selectPort(record)">生成盘点任务</a> + <a-divider v-if="record.enableStatus == '1'" type="vertical"/> <a @click="loadDatas(record.cycleCountHeadId)"><a-icon type="sync"/>刷新</a> </template> diff --git a/ant-design-vue-jeecg/src/views/system/stocktaking/subTables/CycleCountDetailChildSubTable.vue b/ant-design-vue-jeecg/src/views/system/stocktaking/subTables/CycleCountDetailChildSubTable.vue index d20067a..aebe6bb 100644 --- a/ant-design-vue-jeecg/src/views/system/stocktaking/subTables/CycleCountDetailChildSubTable.vue +++ b/ant-design-vue-jeecg/src/views/system/stocktaking/subTables/CycleCountDetailChildSubTable.vue @@ -23,7 +23,7 @@ <template slot="action" slot-scope="text, record"> <adjustment-doc-modal ref="adjustmentModal" @ok="modalFormOk"/> - <a v-if="record.childStatus != 1" @click="createMany(record.id)"><a-icon />实盘登记</a> + <a v-if="record.childStatus != 1" @click="createMany(record)"><a-icon />实盘登记</a> </template> <template slot="fileSlot" slot-scope="text"> diff --git a/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue b/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue index d882bb4..5a603bd 100644 --- a/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue @@ -80,7 +80,7 @@ <span slot="action" slot-scope="text, record"> <adjustment-doc-modal ref="adjustmentModal" @ok="modalFormOk" :id="record.id" :taskHeaderId="record.taskHeaderId"/> - <a v-if="record.taskType==700" @click="createMany(record)">实盘登记</a> + <a v-if="record.taskType==700" @click="createMany(record)">实盘登记<a-divider type="vertical" /></a> <a v-has="'taskDetail:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical" /></a> <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> <a v-has="'taskDetail:delete'">删除</a> diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java index 7dc8bf5..0991c89 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java @@ -4,9 +4,11 @@ import java.io.Serializable; import java.math.BigDecimal; import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; import javax.annotation.Resource; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.modules.wms.config.container.entity.Container; @@ -17,7 +19,9 @@ import org.jeecg.modules.wms.config.material.entity.Material; import org.jeecg.modules.wms.config.material.service.impl.MaterialServiceImpl; import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService; import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; +import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader; import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService; +import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryHeaderService; import org.jeecg.modules.wms.receipt.receiptContainerHeader.service.IReceiptContainerHeaderService; import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerHeaderService; import org.jeecg.modules.wms.stocktaking.cycleCountDetail.entity.CycleCountDetail; @@ -79,6 +83,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap private IReceiptContainerHeaderService receiptContainerHeaderService; @Resource private IShipmentContainerHeaderService shipmentContainerHeaderService; + @Resource + private IInventoryHeaderService inventoryHeaderService; @Override @Transactional @@ -160,6 +166,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap if (locationByCode.getStatus().equals(QuantityConstant.STATUS_CONTAINER_LOCK)) { return Result.error("当前库位已锁定 请检查数据 库存里面不是锁定 实际上库位里面锁定了"); } + InventoryHeader inventoryHeader = inventoryHeaderService.getById(taskId); + if (inventoryHeader == null) { + return Result.error("根据库存头ID:" + taskId + "没有找到库存头"); + } CycleCountDetail cycleCountDetail = new CycleCountDetail(); cycleCountDetail.setCycleCountHeadId(headerId); @@ -170,9 +180,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap cycleCountDetail.setInventoryHeaderId(inventoryDetails.get(0).getInventoryHeaderId()); cycleCountDetail.setLocationCode(inventoryDetails.get(0).getLocationCode()); cycleCountDetail.setInventorySts(inventoryDetails.get(0).getInventoryStatus()); - cycleCountDetail.setSystemQty(BigDecimal.ZERO); - cycleCountDetail.setCountedQty(BigDecimal.ZERO); - cycleCountDetail.setGapQty(BigDecimal.ZERO); + cycleCountDetail.setSystemQty(inventoryHeader.getTotalQty()); +// cycleCountDetail.setCountedQty(BigDecimal.ZERO); +// cycleCountDetail.setGapQty(BigDecimal.ZERO); cycleCountDetail.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_BUILD); cycleCountDetailService.save(cycleCountDetail); for (InventoryDetail inventoryDetail : inventoryDetails) { @@ -196,6 +206,24 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap cycleCountDetailChildServiceImpl.save(cycleCountDetailChild); } } + LambdaQueryWrapper <CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); + cycleCountDetailLambdaQueryWrapper.eq(CycleCountDetail::getCycleCountHeadCode, code); + List<CycleCountDetail> cycleCountDetailList = cycleCountDetailService.list(cycleCountDetailLambdaQueryWrapper); + if (CollectionUtils.isEmpty(cycleCountDetailList)) { + throw new JeecgBootException("没有找到盘点头信息"); + } + BigDecimal countSystemQty = BigDecimal.ZERO; + List<BigDecimal> systemQty = cycleCountDetailList.stream().map(i -> i.getSystemQty()).collect(Collectors.toList()); + for (BigDecimal bigDecimal : systemQty) { + countSystemQty = countSystemQty.add(bigDecimal); + } + CycleCountHeader cycleCountHeader = new CycleCountHeader(); + cycleCountHeader.setId(cycleCountDetailList.get(0).getCycleCountHeadId()); + cycleCountHeader.setTotalLocs(cycleCountDetailList.size()); + cycleCountHeader.setTotalItems(countSystemQty); + if (!cycleCountHeaderService.updateById(cycleCountHeader)) { + throw new JeecgBootException("修改盘点头数量信息失败"); + } return Result.OK("生成完成", headerId); } @@ -330,6 +358,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap if (cycleCountDetail.getEnableStatus().equals(QuantityConstant.CYCLECOUNT_STATUS_BUILD)) { return Result.error("当前盘点明细是新建状态 不能调整"); } + if (cycleCountDetail.getEnableStatus().equals(QuantityConstant.CYCLECOUNT_STATUS_COMPLETED)) { + return Result.error("当前盘点明细是完成状态 不能调整"); + } if (cycleCountDetailChild.getCountedQty().compareTo(BigDecimal.ZERO) == 0) { return Result.error("别闹"); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java index 51801d2..16d6e93 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.util.Collection; import java.util.List; +import javafx.concurrent.Task; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.wms.config.location.entity.Location; import org.jeecg.modules.wms.task.taskHeader.entity.QucikReceiptEntity; @@ -310,6 +311,13 @@ public interface ITaskHeaderService extends IService<TaskHeader> { Result cancelShipmentTask(TaskHeader taskHeader); /** + * 修改盘点明细状态 + * @param taskHeader + * @return + */ + Result updateCycleCountDetailByEnableStatus(TaskHeader taskHeader); + + /** * 更新状态 * @param status * @param id diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java index a3c402c..0a91155 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java @@ -910,6 +910,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea case QuantityConstant.TASK_TYPE_WHOLESHIPMENT: case QuantityConstant.TASK_TYPE_SORTINGSHIPMENT: result = taskHeaderService.cancelShipmentTask(taskHeader); + case QuantityConstant.TASK_TYPE_CYCLECOUNT: + result = taskHeaderService.updateCycleCountDetailByEnableStatus(taskHeader); break; } taskHeaderService.cancelLocationAndContainerStatus(taskHeader); @@ -2772,6 +2774,24 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } @Override + public Result updateCycleCountDetailByEnableStatus(TaskHeader taskHeader) { + log.info("开始取消盘点任务"); + LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); + cycleCountDetailLambdaQueryWrapper.eq(CycleCountDetail::getContainerCode, taskHeader.getContainerCode()) + .ne(CycleCountDetail::getEnableStatus, QuantityConstant.SHIPMENT_RECEIVE_SUCCESS); + CycleCountDetail cycleCountDetail = cycleCountDetailService.getOne(cycleCountDetailLambdaQueryWrapper); + if (cycleCountDetail == null) { + throw new JeecgBootException("取消盘点任务,没有找到盘点明细"); + } + cycleCountDetail.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_BUILD); + if (!cycleCountDetailService.updateById(cycleCountDetail)) { + throw new JeecgBootException("取消盘点任务,修改盘点明细状态失败"); + } + log.info("完成取消盘点任务"); + return Result.ok("取消盘点任务成功"); + } + + @Override public boolean updateStatusById(int status, int id) { TaskHeader taskHeader = new TaskHeader(); taskHeader.setId(id);