diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue index e038bca..1df409d 100644 --- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue +++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/WarehouseList.vue @@ -38,19 +38,19 @@ <!-- 操作按钮区域 --> <div class="table-operator"> - <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> + <a-button v-has="'warehouse:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> <a-button type="primary" icon="download" @click="handleExportXls('仓库')">导出</a-button> <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">导入</a-button> </a-upload> <!-- 高级查询区域 --> <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> - <a-dropdown v-if="selectedRowKeys.length > 0"> - <a-menu slot="overlay"> - <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> - </a-menu> - <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> - </a-dropdown> +<!-- <a-dropdown v-if="selectedRowKeys.length > 0">--> +<!-- <a-menu slot="overlay">--> +<!-- <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>--> +<!-- </a-menu>--> +<!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>--> +<!-- </a-dropdown>--> </div> <!-- table区域-begin --> diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue index 2385221..c166d86 100644 --- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue +++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue @@ -62,7 +62,7 @@ </template> <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">编辑</a> + <a @click="edit(record)">编辑</a> <a-divider type="vertical" /> <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> <a>删除</a> @@ -73,6 +73,7 @@ </div> <shipmentDetail-modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></shipmentDetail-modal> + <shipment-detail-edit-modal ref="modalEditForm" @ok="modalFormOk" :mainId="mainId"></shipment-detail-edit-modal> </a-card> </template> @@ -80,11 +81,12 @@ import { JeecgListMixin } from '@/mixins/JeecgListMixin' import ShipmentDetailModal from './modules/ShipmentDetailModal' + import ShipmentDetailEditModal from './modules/ShipmentDetailEditModal' export default { name: "ShipmentDetailList", mixins:[JeecgListMixin], - components: { ShipmentDetailModal }, + components: { ShipmentDetailEditModal, ShipmentDetailModal }, props:{ mainId:{ type:String, @@ -215,8 +217,12 @@ this.dataSource=[] this.selectedRowKeys=[] this.ipagination.current = 1 - } - + }, + edit (record) { + this.$refs.modalEditForm.edit(record); + this.$refs.modalEditForm.title = "编辑"; + this.$refs.modalEditForm.disableSubmit = false; + }, } } </script> diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentDetailEditModal.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentDetailEditModal.vue index cae713e..02ecc70 100644 --- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentDetailEditModal.vue +++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentDetailEditModal.vue @@ -11,21 +11,37 @@ <a-spin :spinning="confirmLoading"> <a-form-model ref="form" :model="model" :rules="validatorRules"> <a-row> - <a-form-model-item label="物料" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode"> - <j-search-select-tag - v-model="model.materialCode" - :dictOptions="materialList" - :trigger-change="true" - placeholder="请选择物料编码" - @change="searchMaterial"> - </j-search-select-tag> - </a-form-model-item> + <a-col :span="24"> + <a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode"> + <a-input v-model="model.materialCode"placeholder="请输入物料编码" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="物料名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName"> + <a-input v-model="model.materialName"placeholder="请输入物料名称" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="物料规格" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialSpec"> + <a-input v-model="model.materialSpec"placeholder="请输入单据数量" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="物料单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialUnit"> + <a-input v-model="model.materialUnit"placeholder="请输入物料单位" style="width: 100%" /> + </a-form-model-item> + </a-col> <a-col :span="24"> <a-form-model-item label="单据数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qty"> <a-input-number v-model="model.qty"placeholder="请输入单据数量" style="width: 100%" /> </a-form-model-item> </a-col> <a-col :span="24"> + <a-form-model-item label="已收数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskQty"> + <a-input-number v-model="model.taskQty"placeholder="请输入已收数量" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> <a-form-model-item label="库存状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inventoryStatus"> <j-dict-select-tag type="list" v-model="model.inventoryStatus" dictCode="inventory_status" placeholder="请选择库存状态" /> </a-form-model-item> @@ -35,6 +51,11 @@ <a-input v-model="model.batch"placeholder="请输入批次" ></a-input> </a-form-model-item> </a-col> + <a-col :span="24"> + <a-form-model-item label="单据状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status"> + <j-dict-select-tag type="list" v-model="model.status" dictCode="shipment_status" placeholder="请选择单据状态" /> + </a-form-model-item> + </a-col> </a-row> </a-form-model> </a-spin> @@ -48,7 +69,7 @@ import {searchMaterialByCode} from '@/api/api' export default { - name: "ShipmentDetailModal", + name: "ShipmentDetailEditModal", components: { }, props:{ diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/controller/WarehouseController.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/controller/WarehouseController.java index d72eda4..7c6f620 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/controller/WarehouseController.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/controller/WarehouseController.java @@ -115,6 +115,10 @@ public class WarehouseController extends JeecgController<Warehouse, IWarehouseSe @DeleteMapping(value = "/delete") @RequiresPermissions("warehouse:delete") public Result<String> delete(@RequestParam(name="id",required=true) String id) { + List<Warehouse> warehouseList = warehouseService.getAllWarehouseList(); + if(warehouseList.size() == 1) { + return Result.error("不能删除唯一的仓库"); + } warehouseService.removeById(id); return Result.OK("删除成功!"); } @@ -130,6 +134,10 @@ public class WarehouseController extends JeecgController<Warehouse, IWarehouseSe @DeleteMapping(value = "/deleteBatch") @RequiresPermissions("warehouse:delete") public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + List<Warehouse> warehouseList = warehouseService.getAllWarehouseList(); + if(warehouseList.size() == 1) { + return Result.error("不能删除唯一的仓库"); + } this.warehouseService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/IWarehouseService.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/IWarehouseService.java index 719cd19..14a4207 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/IWarehouseService.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/IWarehouseService.java @@ -3,6 +3,8 @@ package org.jeecg.modules.wms.config.warehouse.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.wms.config.warehouse.entity.Warehouse; +import java.util.List; + /** * @Description: 仓库 * @Author: jeecg-boot @@ -11,4 +13,5 @@ import org.jeecg.modules.wms.config.warehouse.entity.Warehouse; */ public interface IWarehouseService extends IService<Warehouse> { + public List<Warehouse> getAllWarehouseList(); } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/impl/WarehouseServiceImpl.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/impl/WarehouseServiceImpl.java index f835e6d..3143145 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/impl/WarehouseServiceImpl.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/config/warehouse/service/impl/WarehouseServiceImpl.java @@ -7,6 +7,8 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; + /** * @Description: 仓库 * @Author: jeecg-boot @@ -16,4 +18,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse> implements IWarehouseService { + @Override + public List<Warehouse> getAllWarehouseList() { + return list(); + } } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/shipmentCombinationController.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/shipmentCombinationController.java index a317b3f..fb4ba79 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/shipmentCombinationController.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/shipmentCombinationController.java @@ -132,4 +132,18 @@ public class shipmentCombinationController { } return Result.OK(portList); } + + + /** + * 匹配库存 + * @return + */ + @AutoLog(value = "出库组盘-选取库存") + @ApiOperation(value="出库组盘-选取库存", notes="出库组盘-选取库存") + @PostMapping("/getInventoryFromShipmentDetail") + @ResponseBody + public Result getInventoryFromShipmentDetail(@RequestParam(name="id",required=true) Integer id, HttpServletRequest req) { + + return shipmentCombinationService.getInventoryFromShipmentDetail(id); + } } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java index afbb188..579f288 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java @@ -24,4 +24,6 @@ public interface IShipmentCombinationService { public Result combination(CombinationModel combinationModel); public Result createShipmentTask(ShipmentContainerHeader shipmentContainerHeader, String warehouseCode); + + public Result getInventoryFromShipmentDetail(Integer shipmentDetailId); } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java index dcba590..2bf57d2 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.wms.config.container.entity.Container; import org.jeecg.modules.wms.config.container.service.IContainerService; +import org.jeecg.modules.wms.config.container.service.impl.ContainerServiceImpl; import org.jeecg.modules.wms.config.location.entity.Location; import org.jeecg.modules.wms.config.location.service.ILocationService; import org.jeecg.modules.wms.config.material.entity.Material; @@ -545,4 +546,23 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi return Result.OK("生成出库任务成功"); } + + @Override + public Result getInventoryFromShipmentDetail(Integer shipmentDetailId) { + ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentDetailId); + if(shipmentDetail == null){ + return Result.error("找不到出库单详情"); + } + String warehouseCode = shipmentDetail.getWarehouseCode(); + List<InventoryDetail> inventoryDetailList = getInventorys(shipmentDetail); + if(inventoryDetailList.size() == 0) { + return Result.error("该物料没有库存或没有符合出库规则的库存"); + } + List<InventoryDetail> removeInventoryList = new ArrayList<>(); + for(InventoryDetail inventoryDetail : inventoryDetailList) { + String containerCode = inventoryDetail.getContainerCode(); + Container container = + } + return null; + } } diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml index cb741eb..03ad129 100644 --- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml +++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml @@ -131,9 +131,9 @@ spring: connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 datasource: master: - url: jdbc:mysql://localhost:3306/wms4?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true + url: jdbc:mysql://172.16.29.45:3306/wms4?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true username: root - password: HHsoft123. + password: hhsoftware driver-class-name: com.mysql.cj.jdbc.Driver # 多数据源配置 #multi-datasource1: