diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue index 60414f7..1fa81be 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue @@ -6,15 +6,13 @@ <a-row :gutter="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="库区"> - <a-select - show-search - placeholder="请选择库区" - option-filter-prop="children" - v-model="queryParam.zoneCode"> - <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code"> - {{item.name}} - </a-select-option> - </a-select> + <a-form-model-item prop="zoneOptions"> + <j-multi-select-tag + v-model="queryParam.zoneCode" + :options="zoneOptions" + placeholder="请选择"> + </j-multi-select-tag> + </a-form-model-item> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> @@ -171,6 +169,7 @@ export default { return { zoneList: [], description: '库存表管理页面', + zoneOptions:[], // 表头 columns: [ { @@ -347,6 +346,14 @@ export default { getZoneList().then((res) => { if (res.success) { this.zoneList = res.result + //延迟半秒执行,避免组件未加载完,数据已经加载完 + setTimeout(()=>{ + //slice可以在数组的任何位置进行删除/添加操作 + this.zoneOptions.splice(0, 1); + for (let i = 0; i < res.result.length; i++) { + this.zoneOptions.push({value:res.result[i].code,text:res.result[i].name}) + } + },500) } }); }, diff --git a/ant-design-vue-jeecg/src/views/system/modules/UserModal.vue b/ant-design-vue-jeecg/src/views/system/modules/UserModal.vue index 7c4a6ca..6c57da3 100644 --- a/ant-design-vue-jeecg/src/views/system/modules/UserModal.vue +++ b/ant-design-vue-jeecg/src/views/system/modules/UserModal.vue @@ -162,7 +162,7 @@ import moment from 'moment' import Vue from 'vue' import {ACCESS_TOKEN} from "@/store/mutation-types" import {getAction} from '@/api/manage' -import {addUser, editUser, queryUserRole, queryall, queryWarehouse, getAllWarehouseList, getZoneList} from '@/api/api' +import {addUser, editUser, queryUserRole, queryall, queryWarehouse, getAllWarehouseList, getZoneList, getAllZoneList} from '@/api/api' import {disabledAuthFilter} from "@/utils/authFilter" import {duplicateCheck} from '@/api/api' @@ -327,7 +327,7 @@ export default { }); }, initZoneList() { - getZoneList().then((res) => { + getAllZoneList().then((res) => { if (res.success) { this.zoneOptions = res.result.map((item, index, arr) => { let c = {label: item.name, value: item.code} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java index 26c8bd6..2fa4a6a 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java @@ -47,6 +47,10 @@ public class InventoryTransaction implements Serializable { @Excel(name = "容器编码", width = 15) @ApiModelProperty(value = "容器编码") private String containerCode; + /** 库区编码 */ + @Excel(name = "库区编码", width = 15) + @ApiModelProperty(value = "库区编码") + private String zoneCode; /** 起始库位编码 */ @Excel(name = "起始库位编码", width = 15) @ApiModelProperty(value = "起始库位编码") @@ -64,6 +68,14 @@ public class InventoryTransaction implements Serializable { @Excel(name = "出库单id", width = 15) @ApiModelProperty(value = "出库单id") private Integer shipmentId; + /** 出库单编码 */ + @Excel(name = "出库单编码", width = 15) + @ApiModelProperty(value = "出库单编码") + private String shipmentCode; + /** 出库单编码 */ + @Excel(name = "出库单类型", width = 15) + @ApiModelProperty(value = "出库单类型") + private String shipmentType; /** 出库详情id */ @Excel(name = "出库详情id", width = 15) @ApiModelProperty(value = "出库详情id") @@ -76,6 +88,14 @@ public class InventoryTransaction implements Serializable { @Excel(name = "入库单id", width = 15) @ApiModelProperty(value = "入库单id") private Integer receiptId; + /** 入库单编码 */ + @Excel(name = "入库单编码", width = 15) + @ApiModelProperty(value = "入库单编码") + private String receiptCode; + /** 入库单编码 */ + @Excel(name = "入库单类型", width = 15) + @ApiModelProperty(value = "入库单类型") + private String receiptType; /** 入库单详情id */ @Excel(name = "入库单详情id", width = 15) @ApiModelProperty(value = "入库单详情id") @@ -109,19 +129,27 @@ public class InventoryTransaction implements Serializable { @Excel(name = "数量", width = 15) @ApiModelProperty(value = "数量") private BigDecimal qty; + /** 入库数量 */ + @Excel(name = "入库数量", width = 15) + @ApiModelProperty(value = "入库数量") + private BigDecimal receiptQty; + /** 出库数量 */ + @Excel(name = "出库数量", width = 15) + @ApiModelProperty(value = "出库数量") + private BigDecimal shipmentQty; /** 库存数量 */ @Excel(name = "库存数量", width = 15) @ApiModelProperty(value = "库存数量") private BigDecimal inventoryQty; - /** 批次 */ + /** 批次, 批次主要用于成品,比如以生产日期为批次 */ @Excel(name = "批次", width = 15) @ApiModelProperty(value = "批次") private String batch; - /** 批号 */ + /** 批号, 批号主要用于原料,记录原料是哪一批 */ @Excel(name = "批号", width = 15) @ApiModelProperty(value = "批号") private String lot; - /** 项目号 */ + /** 项目号, 项目号蛀牙用于记录项目 */ @Excel(name = "项目号", width = 15) @ApiModelProperty(value = "项目号") private String project; 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 16b7c7e..ff54d1a 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 @@ -1076,6 +1076,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (receiptDetail == null) { throw new JeecgBootException("未找到ID:" + taskDetail.getReceiptDetailId() + "入库单明细"); } + ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); + if (receiptHeader == null) { + throw new JeecgBootException("未找到ID:" + receiptDetail.getReceiptId() + "入库单头"); + } // 操作记录统计用 taskDetail.setReceiptCode(receiptDetail.getReceiptCode()); BigDecimal taskQty = receiptDetail.getTaskQty(); @@ -1117,12 +1121,15 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryTransaction.setWarehouseCode(taskDetail.getWarehouseCode()); inventoryTransaction.setCompanyCode(taskDetail.getCompanyCode()); inventoryTransaction.setContainerCode(containerCode); + inventoryTransaction.setZoneCode(zoneCode); inventoryTransaction.setToLocationCode(toLocationCode); inventoryTransaction.setMaterialCode(taskDetail.getMaterialCode()); inventoryTransaction.setMaterialName(taskDetail.getMaterialName()); inventoryTransaction.setMaterialSpec(taskDetail.getMaterialSpec()); inventoryTransaction.setMaterialUnit(taskDetail.getMaterialUnit()); inventoryTransaction.setReceiptId(taskDetail.getReceiptId()); + inventoryTransaction.setReceiptCode(receiptHeader.getCode()); + inventoryTransaction.setReceiptType(receiptHeader.getType()); inventoryTransaction.setReceiptDetailId(taskDetail.getReceiptDetailId()); inventoryTransaction.setReceiptContainerDetailId(taskDetail.getReceiptContainerDetailId()); inventoryTransaction.setBatch(taskDetail.getBatch()); @@ -1130,6 +1137,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryTransaction.setProject(taskDetail.getProject()); inventoryTransaction.setInventoryStatus(taskDetail.getInventoryStatus()); inventoryTransaction.setQty(receiptQty); + inventoryTransaction.setReceiptQty(receiptQty); // 获得库存数量 BigDecimal inventoryQty = inventoryDetailService.getSumQty(inventoryDetail); inventoryQty = inventoryQty.add(receiptQty); @@ -1207,6 +1215,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea String fromLocationCode = taskHeader.getFromLocationCode(); String toLocationCode = taskHeader.getToLocationCode(); String containerCode = taskHeader.getContainerCode(); + String zoneCode = taskHeader.getZoneCode(); int taskType = taskHeader.getTaskType(); List<TaskDetail> taskDetailList = taskDetailService.getTaskDetailListByTaskId(taskHeader.getId()); boolean success = false; @@ -1254,6 +1263,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (shipmentDetail == null) { throw new JeecgBootException("完成出库任务, 出库任务没有找到出库详情" + taskDetail.getShipmentDetailId()); } + ShipmentHeader shipmentHeader = shipmentHeaderService.getById(shipmentDetail.getShipmentId()); + if (shipmentHeader == null) { + throw new JeecgBootException("完成出库任务, 出库任务没有找到出库单" + shipmentDetail.getShipmentId()); + } taskDetail.setShipmentCode(shipmentDetail.getShipmentCode()); int shipmentDetailId = shipmentDetail.getId(); int status = QuantityConstant.SHIPMENT_HEADER_COMPLETED; @@ -1302,6 +1315,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryTransaction.setWarehouseCode(warehouseCode); inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); inventoryTransaction.setContainerCode(containerCode); + inventoryTransaction.setZoneCode(zoneCode); inventoryTransaction.setFromLocationCode(fromLocationCode); inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); @@ -1309,12 +1323,15 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryTransaction.setMaterialUnit(inventoryDetail.getMaterialUnit()); inventoryTransaction.setInventoryStatus(inventoryDetail.getInventoryStatus()); inventoryTransaction.setShipmentId(taskDetail.getShipmentId()); + inventoryTransaction.setShipmentCode(shipmentHeader.getCode()); + inventoryTransaction.setShipmentType(shipmentHeader.getType()); inventoryTransaction.setShipmentDetailId(taskDetail.getShipmentDetailId()); inventoryTransaction.setShipmentContainerDetailId(taskDetail.getShipmentContainerDetailId()); inventoryTransaction.setBatch(inventoryDetail.getBatch()); inventoryTransaction.setLot(inventoryDetail.getLot()); inventoryTransaction.setProject(inventoryDetail.getProject()); inventoryTransaction.setQty(taskDetail.getQty()); + inventoryTransaction.setShipmentQty(taskDetail.getQty()); BigDecimal inventoryQty = inventoryDetailService.getSumQty(inventoryDetail); inventoryTransaction.setInventoryQty(inventoryQty); inventoryTransactionList.add(inventoryTransaction); @@ -1810,6 +1827,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea String containerCode = taskHeader.getContainerCode(); String fromLocationCode = taskHeader.getFromLocationCode(); String toLocationCode = taskHeader.getToLocationCode(); + String zoneCode = taskHeader.getZoneCode(); boolean success = false; if (StringUtils.isEmpty(fromLocationCode)) { return Result.error("完成盘点任务时,起始库位编码为空"); @@ -1933,17 +1951,21 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea InventoryTransaction inventoryTransaction = new InventoryTransaction(); inventoryTransaction.setWarehouseCode(taskHeader.getWarehouseCode()); inventoryTransaction.setCompanyCode(taskHeader.getCompanyCode()); + inventoryTransaction.setZoneCode(zoneCode); inventoryTransaction.setContainerCode(child.getContainerCode()); inventoryTransaction.setToLocationCode(child.getLocationCode()); inventoryTransaction.setType(QuantityConstant.INVENTORY_TRANSACTION_CYCLEINTO); - inventoryTransaction.setReceiptId(warehousingOrderId); - inventoryTransaction.setReceiptDetailId(receiptDetail.getReceiptId()); + inventoryTransaction.setReceiptId(receiptDetail.getReceiptId()); + inventoryTransaction.setReceiptCode(receiptDetail.getReceiptCode()); + inventoryTransaction.setReceiptType(QuantityConstant.RECEIPT_BILL_TYPE_QTR); + inventoryTransaction.setReceiptDetailId(receiptDetail.getId()); inventoryTransaction.setMaterialCode(child.getMaterialCode()); inventoryTransaction.setMaterialName(child.getMaterialName()); inventoryTransaction.setMaterialSpec(child.getMaterialSpec()); inventoryTransaction.setMaterialUnit(child.getMaterialUnit()); inventoryTransaction.setInventoryStatus(child.getInventoryStatus()); inventoryTransaction.setQty(child.getCountedQty()); + inventoryTransaction.setReceiptQty(child.getCountedQty()); inventoryTransaction.setBatch(child.getBatch()); inventoryTransaction.setLot(child.getLot()); success = inventoryTransactionService.save(inventoryTransaction); @@ -2006,9 +2028,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryTransaction.setWarehouseCode(taskHeader.getWarehouseCode()); inventoryTransaction.setCompanyCode(taskHeader.getCompanyCode()); inventoryTransaction.setContainerCode(child.getContainerCode()); + inventoryTransaction.setZoneCode(zoneCode); inventoryTransaction.setFromLocationCode(child.getLocationCode()); inventoryTransaction.setType(QuantityConstant.INVENTORY_TRANSACTION_CYCLEOUT); - inventoryTransaction.setShipmentId(outboundOrderId); + inventoryTransaction.setShipmentId(shipmentDetail.getShipmentId()); + inventoryTransaction.setShipmentCode(shipmentDetail.getShipmentCode()); + inventoryTransaction.setShipmentType(QuantityConstant.SHIPMENT_BILL_TYPE_QTC); inventoryTransaction.setShipmentDetailId(shipmentDetail.getId()); inventoryTransaction.setMaterialCode(child.getMaterialCode()); inventoryTransaction.setMaterialName(child.getMaterialName()); @@ -2016,6 +2041,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryTransaction.setMaterialUnit(child.getMaterialUnit()); inventoryTransaction.setInventoryStatus(child.getInventoryStatus()); inventoryTransaction.setQty(child.getCountedQty()); + inventoryTransaction.setShipmentQty(child.getCountedQty()); inventoryTransaction.setBatch(child.getBatch()); inventoryTransaction.setLot(child.getLot()); success = inventoryTransactionService.save(inventoryTransaction); @@ -2128,7 +2154,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea String containerCode = taskHeader.getContainerCode(); String fromLocationCode = taskHeader.getFromLocationCode(); String toLocationCode = taskHeader.getToLocationCode(); - + String zoneCode = taskHeader.getZoneCode(); if (StringUtils.isEmpty(containerCode)) { return Result.error("完成移库任务时, 托盘号为空"); } @@ -2151,6 +2177,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryDetail.setLocationCode(toLocationCode); InventoryTransaction inventoryTransaction = new InventoryTransaction(); inventoryTransaction.setWarehouseCode(inventoryDetail.getWarehouseCode()); + inventoryTransaction.setZoneCode(zoneCode); inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); inventoryTransaction.setType(QuantityConstant.INVENTORY_TRANSACTION_TRANSFER);