From 058720fcb0b30bf30b0d3183957b2df1143a6768 Mon Sep 17 00:00:00 2001 From: zuqijia <2924963185@qq.com> Date: Fri, 12 Jun 2026 18:10:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- run_sql.bat | 16 + .../controller/common/CommonController.java | 17 + .../src/main/resources/schema/engineering.sql | 280 +++++++++- .../com/ruoyi/common/utils/SecurityUtils.java | 33 ++ .../engineering/ConstructionController.java | 1 + .../engineering/ContractController.java | 1 + .../engineering/MaterialController.java | 297 ++++++++++ .../engineering/PaymentController.java | 1 + .../engineering/SupplierController.java | 1 + .../domain/engineering/Construction.java | 14 +- .../system/domain/engineering/Material.java | 14 +- .../system/domain/engineering/MaterialIn.java | 35 ++ .../domain/engineering/MaterialInventory.java | 142 +++++ .../engineering/MaterialInventoryDetail.java | 171 ++++++ .../domain/engineering/MaterialOut.java | 46 ++ .../domain/engineering/MaterialPick.java | 261 +++++++++ .../domain/engineering/MaterialReturn.java | 237 ++++++++ .../engineering/MaterialReturnBack.java | 226 ++++++++ .../domain/engineering/MaterialScrap.java | 226 ++++++++ .../domain/engineering/MaterialTransfer.java | 238 ++++++++ .../system/domain/engineering/Supplier.java | 20 +- .../MaterialInventoryDetailMapper.java | 22 + .../engineering/MaterialInventoryMapper.java | 22 + .../engineering/MaterialPickMapper.java | 22 + .../engineering/MaterialReturnBackMapper.java | 22 + .../engineering/MaterialReturnMapper.java | 22 + .../engineering/MaterialScrapMapper.java | 22 + .../engineering/MaterialTransferMapper.java | 22 + .../service/engineering/IMaterialService.java | 92 +++- .../engineering/ConstructionServiceImpl.java | 3 +- .../impl/engineering/ContractServiceImpl.java | 3 +- .../impl/engineering/MaterialServiceImpl.java | 520 +++++++++++++++++- .../impl/engineering/PaymentServiceImpl.java | 68 ++- .../impl/engineering/SupplierServiceImpl.java | 3 +- .../MaterialInventoryDetailMapper.xml | 78 +++ .../engineering/MaterialInventoryMapper.xml | 70 +++ .../mapper/engineering/MaterialPickMapper.xml | 79 +++ .../engineering/MaterialReturnBackMapper.xml | 74 +++ .../engineering/MaterialReturnMapper.xml | 77 +++ .../engineering/MaterialScrapMapper.xml | 79 +++ .../engineering/MaterialTransferMapper.xml | 79 +++ ruoyi-ui/src/api/engineering/material.js | 314 +++++++++++ .../src/components/ImagePreview/index.vue | 53 +- .../construction/AcceptanceDialog.vue | 2 +- .../construction/ConstructionAddOrEdit.vue | 2 +- .../views/engineering/construction/index.vue | 2 +- .../contract/ContractAddOrEdit.vue | 2 +- .../engineering/contract/ContractDetail.vue | 2 +- .../src/views/engineering/contract/index.vue | 2 +- .../views/engineering/material/inventory.vue | 420 ++++++++++++++ .../src/views/engineering/material/pick.vue | 269 +++++++++ .../src/views/engineering/material/return.vue | 248 +++++++++ .../views/engineering/material/returnBack.vue | 244 ++++++++ .../src/views/engineering/material/scrap.vue | 272 +++++++++ .../views/engineering/material/transfer.vue | 271 +++++++++ .../supplier/SupplierAddOrEdit.vue | 2 +- .../engineering/supplier/SupplierDetail.vue | 49 +- .../src/views/engineering/supplier/index.vue | 2 +- sql/ry_engineering.sql | 159 ++++-- start_backend.bat | 77 +++ start_backend_simple.bat | 19 + start_final.bat | 93 ++++ start_spring.bat | 74 +++ 63 files changed, 6101 insertions(+), 133 deletions(-) create mode 100644 run_sql.bat create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialInventory.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialInventoryDetail.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialPick.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialReturn.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialReturnBack.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialScrap.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialTransfer.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialInventoryDetailMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialInventoryMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialPickMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialReturnBackMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialReturnMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialScrapMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialTransferMapper.java create mode 100644 ruoyi-system/src/main/resources/mapper/engineering/MaterialInventoryDetailMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/engineering/MaterialInventoryMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/engineering/MaterialPickMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/engineering/MaterialReturnBackMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/engineering/MaterialReturnMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/engineering/MaterialScrapMapper.xml create mode 100644 ruoyi-system/src/main/resources/mapper/engineering/MaterialTransferMapper.xml create mode 100644 ruoyi-ui/src/views/engineering/material/inventory.vue create mode 100644 ruoyi-ui/src/views/engineering/material/pick.vue create mode 100644 ruoyi-ui/src/views/engineering/material/return.vue create mode 100644 ruoyi-ui/src/views/engineering/material/returnBack.vue create mode 100644 ruoyi-ui/src/views/engineering/material/scrap.vue create mode 100644 ruoyi-ui/src/views/engineering/material/transfer.vue create mode 100644 start_backend.bat create mode 100644 start_backend_simple.bat create mode 100644 start_final.bat create mode 100644 start_spring.bat diff --git a/run_sql.bat b/run_sql.bat new file mode 100644 index 00000000..89b967b6 --- /dev/null +++ b/run_sql.bat @@ -0,0 +1,16 @@ +@echo off +set MYSQL_PATH="C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" +set SQL_FILE="D:\klp-oa\engineering-management-ruoyi\RuoYi-Vue\sql\ry_engineering.sql" +set DB_NAME=engineering +set DB_USER=root +set DB_PASS=147123369A + +echo Executing SQL script... +%MYSQL_PATH% -u %DB_USER% -p%DB_PASS% --default-character-set=utf8mb4 %DB_NAME% < %SQL_FILE% + +if %ERRORLEVEL% equ 0 ( + echo SQL script executed successfully! +) else ( + echo Failed to execute SQL script. + pause +) \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java index 9b5332e3..da7dde2b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java @@ -13,8 +13,11 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import java.util.HashMap; +import java.util.Map; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileUploadUtils; import com.ruoyi.common.utils.file.FileUtils; @@ -159,4 +162,18 @@ public class CommonController log.error("下载文件失败", e); } } + + /** + * 获取用户权限信息(用于前端控制显示) + */ + @GetMapping("/user/permissions") + public AjaxResult getUserPermissions() + { + Map permissions = new HashMap<>(); + permissions.put("hideAmount", SecurityUtils.isHideAmount()); + permissions.put("isEngineering", SecurityUtils.isEngineeringRole()); + permissions.put("isPurchase", SecurityUtils.isPurchaseRole()); + permissions.put("isAdmin", SecurityUtils.isAdmin()); + return AjaxResult.success(permissions); + } } diff --git a/ruoyi-admin/src/main/resources/schema/engineering.sql b/ruoyi-admin/src/main/resources/schema/engineering.sql index 4a207487..904b469c 100644 --- a/ruoyi-admin/src/main/resources/schema/engineering.sql +++ b/ruoyi-admin/src/main/resources/schema/engineering.sql @@ -179,6 +179,126 @@ CREATE TABLE IF NOT EXISTS engineering_material_out ( CONSTRAINT fk_material_out_construction FOREIGN KEY (construction_id) REFERENCES engineering_construction(construction_id) ); +CREATE TABLE IF NOT EXISTS engineering_material_return ( + return_id BIGINT AUTO_INCREMENT PRIMARY KEY, + return_no VARCHAR(50) NOT NULL UNIQUE, + material_id BIGINT NOT NULL, + quantity DECIMAL(18,4) NOT NULL, + return_date DATE, + supplier_id BIGINT, + return_reason VARCHAR(500), + status VARCHAR(20) DEFAULT 'pending', + remark TEXT, + create_by VARCHAR(64) DEFAULT '', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64) DEFAULT '', + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_material_return_material FOREIGN KEY (material_id) REFERENCES engineering_material(material_id), + CONSTRAINT fk_material_return_supplier FOREIGN KEY (supplier_id) REFERENCES engineering_supplier(supplier_id) +); + +CREATE TABLE IF NOT EXISTS engineering_material_pick ( + pick_id BIGINT AUTO_INCREMENT PRIMARY KEY, + pick_no VARCHAR(50) NOT NULL UNIQUE, + material_id BIGINT NOT NULL, + quantity DECIMAL(18,4) NOT NULL, + pick_date DATE, + dept_name VARCHAR(100), + receiver VARCHAR(50), + use_purpose VARCHAR(500), + status VARCHAR(20) DEFAULT 'pending', + remark TEXT, + create_by VARCHAR(64) DEFAULT '', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64) DEFAULT '', + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_material_pick_material FOREIGN KEY (material_id) REFERENCES engineering_material(material_id) +); + +CREATE TABLE IF NOT EXISTS engineering_material_return_back ( + return_back_id BIGINT AUTO_INCREMENT PRIMARY KEY, + return_back_no VARCHAR(50) NOT NULL UNIQUE, + pick_id BIGINT, + material_id BIGINT NOT NULL, + quantity DECIMAL(18,4) NOT NULL, + return_back_date DATE, + status VARCHAR(20) DEFAULT 'pending', + remark TEXT, + create_by VARCHAR(64) DEFAULT '', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64) DEFAULT '', + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_material_return_back_material FOREIGN KEY (material_id) REFERENCES engineering_material(material_id), + CONSTRAINT fk_material_return_back_pick FOREIGN KEY (pick_id) REFERENCES engineering_material_pick(pick_id) +); + +CREATE TABLE IF NOT EXISTS engineering_material_transfer ( + transfer_id BIGINT AUTO_INCREMENT PRIMARY KEY, + transfer_no VARCHAR(50) NOT NULL UNIQUE, + material_id BIGINT NOT NULL, + quantity DECIMAL(18,4) NOT NULL, + from_project VARCHAR(200), + to_project VARCHAR(200), + transfer_date DATE, + transfer_type VARCHAR(20), + status VARCHAR(20) DEFAULT 'pending', + remark TEXT, + create_by VARCHAR(64) DEFAULT '', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64) DEFAULT '', + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_material_transfer_material FOREIGN KEY (material_id) REFERENCES engineering_material(material_id) +); + +CREATE TABLE IF NOT EXISTS engineering_material_inventory ( + inventory_id BIGINT AUTO_INCREMENT PRIMARY KEY, + inventory_no VARCHAR(50) NOT NULL UNIQUE, + inventory_date DATE, + warehouse VARCHAR(200), + inventory_type VARCHAR(20), + status VARCHAR(20) DEFAULT 'pending', + remark TEXT, + create_by VARCHAR(64) DEFAULT '', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64) DEFAULT '', + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE IF NOT EXISTS engineering_material_inventory_detail ( + detail_id BIGINT AUTO_INCREMENT PRIMARY KEY, + inventory_id BIGINT NOT NULL, + material_id BIGINT NOT NULL, + system_stock DECIMAL(18,4), + actual_stock DECIMAL(18,4), + diff_quantity DECIMAL(18,4), + status VARCHAR(20) DEFAULT 'pending', + remark TEXT, + create_by VARCHAR(64) DEFAULT '', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64) DEFAULT '', + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_inventory_detail_inventory FOREIGN KEY (inventory_id) REFERENCES engineering_material_inventory(inventory_id) ON DELETE CASCADE, + CONSTRAINT fk_inventory_detail_material FOREIGN KEY (material_id) REFERENCES engineering_material(material_id) +); + +CREATE TABLE IF NOT EXISTS engineering_material_scrap ( + scrap_id BIGINT AUTO_INCREMENT PRIMARY KEY, + scrap_no VARCHAR(50) NOT NULL UNIQUE, + material_id BIGINT NOT NULL, + quantity DECIMAL(18,4) NOT NULL, + scrap_type VARCHAR(20), + scrap_date DATE, + reason VARCHAR(500), + handler VARCHAR(50), + status VARCHAR(20) DEFAULT 'pending', + remark TEXT, + create_by VARCHAR(64) DEFAULT '', + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_by VARCHAR(64) DEFAULT '', + update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_material_scrap_material FOREIGN KEY (material_id) REFERENCES engineering_material(material_id) +); + CREATE TABLE IF NOT EXISTS engineering_payment ( payment_id BIGINT AUTO_INCREMENT PRIMARY KEY, contract_id BIGINT NOT NULL, @@ -318,9 +438,167 @@ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame SELECT '物料出库', @materialMenuId, 6, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:out:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '物料出库' AND parent_id = @materialMenuId); +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '退货单管理', @engineeringMenuId, 5, 'materialReturn', 'engineering/material/return', 1, 0, 'C', '0', '0', 'system:engineering:material:return:list', 'shopping', 'admin', CURRENT_TIMESTAMP, '', NULL, '退货单管理菜单' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '退货单管理' AND parent_id = @engineeringMenuId); + +SET @materialReturnMenuId = (SELECT menu_id FROM sys_menu WHERE menu_name = '退货单管理' AND parent_id = @engineeringMenuId); +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '退货单查询', @materialReturnMenuId, 1, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:return:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '退货单查询' AND parent_id = @materialReturnMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '退货单新增', @materialReturnMenuId, 2, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:return:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '退货单新增' AND parent_id = @materialReturnMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '退货单修改', @materialReturnMenuId, 3, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:return:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '退货单修改' AND parent_id = @materialReturnMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '退货单删除', @materialReturnMenuId, 4, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:return:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '退货单删除' AND parent_id = @materialReturnMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '退货单审批', @materialReturnMenuId, 5, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:return:approve', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '退货单审批' AND parent_id = @materialReturnMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '领料单管理', @engineeringMenuId, 6, 'materialPick', 'engineering/material/pick', 1, 0, 'C', '0', '0', 'system:engineering:material:pick:list', 'shopping', 'admin', CURRENT_TIMESTAMP, '', NULL, '领料单管理菜单' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '领料单管理' AND parent_id = @engineeringMenuId); + +SET @materialPickMenuId = (SELECT menu_id FROM sys_menu WHERE menu_name = '领料单管理' AND parent_id = @engineeringMenuId); +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '领料单查询', @materialPickMenuId, 1, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:pick:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '领料单查询' AND parent_id = @materialPickMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '领料单新增', @materialPickMenuId, 2, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:pick:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '领料单新增' AND parent_id = @materialPickMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '领料单修改', @materialPickMenuId, 3, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:pick:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '领料单修改' AND parent_id = @materialPickMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '领料单删除', @materialPickMenuId, 4, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:pick:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '领料单删除' AND parent_id = @materialPickMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '领料单审批', @materialPickMenuId, 5, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:pick:approve', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '领料单审批' AND parent_id = @materialPickMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '领料单发放', @materialPickMenuId, 6, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:pick:issue', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '领料单发放' AND parent_id = @materialPickMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '还料单管理', @engineeringMenuId, 7, 'materialReturnBack', 'engineering/material/returnBack', 1, 0, 'C', '0', '0', 'system:engineering:material:returnBack:list', 'shopping', 'admin', CURRENT_TIMESTAMP, '', NULL, '还料单管理菜单' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '还料单管理' AND parent_id = @engineeringMenuId); + +SET @materialReturnBackMenuId = (SELECT menu_id FROM sys_menu WHERE menu_name = '还料单管理' AND parent_id = @engineeringMenuId); +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '还料单查询', @materialReturnBackMenuId, 1, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:returnBack:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '还料单查询' AND parent_id = @materialReturnBackMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '还料单新增', @materialReturnBackMenuId, 2, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:returnBack:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '还料单新增' AND parent_id = @materialReturnBackMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '还料单修改', @materialReturnBackMenuId, 3, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:returnBack:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '还料单修改' AND parent_id = @materialReturnBackMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '还料单删除', @materialReturnBackMenuId, 4, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:returnBack:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '还料单删除' AND parent_id = @materialReturnBackMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '还料单审批', @materialReturnBackMenuId, 5, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:returnBack:approve', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '还料单审批' AND parent_id = @materialReturnBackMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '调拨单管理', @engineeringMenuId, 8, 'materialTransfer', 'engineering/material/transfer', 1, 0, 'C', '0', '0', 'system:engineering:material:transfer:list', 'shopping', 'admin', CURRENT_TIMESTAMP, '', NULL, '调拨单管理菜单' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '调拨单管理' AND parent_id = @engineeringMenuId); + +SET @materialTransferMenuId = (SELECT menu_id FROM sys_menu WHERE menu_name = '调拨单管理' AND parent_id = @engineeringMenuId); +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '调拨单查询', @materialTransferMenuId, 1, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:transfer:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '调拨单查询' AND parent_id = @materialTransferMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '调拨单新增', @materialTransferMenuId, 2, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:transfer:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '调拨单新增' AND parent_id = @materialTransferMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '调拨单修改', @materialTransferMenuId, 3, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:transfer:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '调拨单修改' AND parent_id = @materialTransferMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '调拨单删除', @materialTransferMenuId, 4, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:transfer:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '调拨单删除' AND parent_id = @materialTransferMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '调拨单审批', @materialTransferMenuId, 5, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:transfer:approve', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '调拨单审批' AND parent_id = @materialTransferMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '盘点单管理', @engineeringMenuId, 9, 'materialInventory', 'engineering/material/inventory', 1, 0, 'C', '0', '0', 'system:engineering:material:inventory:list', 'shopping', 'admin', CURRENT_TIMESTAMP, '', NULL, '盘点单管理菜单' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '盘点单管理' AND parent_id = @engineeringMenuId); + +SET @materialInventoryMenuId = (SELECT menu_id FROM sys_menu WHERE menu_name = '盘点单管理' AND parent_id = @engineeringMenuId); +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '盘点单查询', @materialInventoryMenuId, 1, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:inventory:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '盘点单查询' AND parent_id = @materialInventoryMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '盘点单新增', @materialInventoryMenuId, 2, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:inventory:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '盘点单新增' AND parent_id = @materialInventoryMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '盘点单修改', @materialInventoryMenuId, 3, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:inventory:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '盘点单修改' AND parent_id = @materialInventoryMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '盘点单删除', @materialInventoryMenuId, 4, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:inventory:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '盘点单删除' AND parent_id = @materialInventoryMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '盘点单完成', @materialInventoryMenuId, 5, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:inventory:complete', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '盘点单完成' AND parent_id = @materialInventoryMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '盘点单调整', @materialInventoryMenuId, 6, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:inventory:adjust', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '盘点单调整' AND parent_id = @materialInventoryMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '报损报溢管理', @engineeringMenuId, 10, 'materialScrap', 'engineering/material/scrap', 1, 0, 'C', '0', '0', 'system:engineering:material:scrap:list', 'shopping', 'admin', CURRENT_TIMESTAMP, '', NULL, '报损报溢管理菜单' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '报损报溢管理' AND parent_id = @engineeringMenuId); + +SET @materialScrapMenuId = (SELECT menu_id FROM sys_menu WHERE menu_name = '报损报溢管理' AND parent_id = @engineeringMenuId); +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '报损报溢查询', @materialScrapMenuId, 1, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:scrap:query', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '报损报溢查询' AND parent_id = @materialScrapMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '报损报溢新增', @materialScrapMenuId, 2, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:scrap:add', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '报损报溢新增' AND parent_id = @materialScrapMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '报损报溢修改', @materialScrapMenuId, 3, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:scrap:edit', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '报损报溢修改' AND parent_id = @materialScrapMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '报损报溢删除', @materialScrapMenuId, 4, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:scrap:remove', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '报损报溢删除' AND parent_id = @materialScrapMenuId); + +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +SELECT '报损报溢审批', @materialScrapMenuId, 5, '#', '', 1, 0, 'F', '0', '0', 'system:engineering:material:scrap:approve', '#', 'admin', CURRENT_TIMESTAMP, '', NULL, '' +WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '报损报溢审批' AND parent_id = @materialScrapMenuId); + -- 付款管理二级菜单 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) -SELECT '付款管理', @engineeringMenuId, 5, 'payment', 'engineering/payment/index', 1, 0, 'C', '0', '0', 'system:engineering:payment:list', 'money', 'admin', CURRENT_TIMESTAMP, '', NULL, '付款管理菜单' +SELECT '付款管理', @engineeringMenuId, 11, 'payment', 'engineering/payment/index', 1, 0, 'C', '0', '0', 'system:engineering:payment:list', 'money', 'admin', CURRENT_TIMESTAMP, '', NULL, '付款管理菜单' WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_name = '付款管理' AND parent_id = @engineeringMenuId); -- 付款管理按钮 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index fd4aa744..e57ab784 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -185,4 +185,37 @@ public class SecurityUtils .anyMatch(x -> Constants.SUPER_ADMIN.equals(x) || PatternMatchUtils.simpleMatch(x, role)); } + /** + * 判断用户是否需要隐藏金额字段 + * 工程角色(engineering)和采购角色(purchase)需要隐藏金额字段 + * + * @return 是否需要隐藏金额字段 + */ + public static boolean isHideAmount() + { + List roleList = getLoginUser().getUser().getRoles(); + Collection roles = roleList.stream().map(SysRole::getRoleKey).collect(Collectors.toSet()); + return roles.contains("engineering") || roles.contains("purchase"); + } + + /** + * 判断用户是否为工程角色 + * + * @return 是否为工程角色 + */ + public static boolean isEngineeringRole() + { + return hasRole("engineering"); + } + + /** + * 判断用户是否为采购角色 + * + * @return 是否为采购角色 + */ + public static boolean isPurchaseRole() + { + return hasRole("purchase"); + } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/ConstructionController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/ConstructionController.java index d1c87e9c..ee64f223 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/ConstructionController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/ConstructionController.java @@ -24,6 +24,7 @@ public class ConstructionController extends BaseController { @PreAuthorize("@ss.hasPermi('system:engineering:construction:list')") @GetMapping("/list") public TableDataInfo list(Construction construction) { + startPage(); return constructionService.selectConstructionList(construction); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/ContractController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/ContractController.java index 2bcd9963..c12db4a7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/ContractController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/ContractController.java @@ -25,6 +25,7 @@ public class ContractController extends BaseController { @PreAuthorize("@ss.hasPermi('system:engineering:contract:list')") @GetMapping("/list") public TableDataInfo list(Contract contract) { + startPage(); return contractService.selectContractList(contract); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/MaterialController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/MaterialController.java index 01e57759..df8d397c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/MaterialController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/MaterialController.java @@ -8,6 +8,13 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.engineering.Material; import com.ruoyi.system.domain.engineering.MaterialIn; import com.ruoyi.system.domain.engineering.MaterialOut; +import com.ruoyi.system.domain.engineering.MaterialReturn; +import com.ruoyi.system.domain.engineering.MaterialPick; +import com.ruoyi.system.domain.engineering.MaterialReturnBack; +import com.ruoyi.system.domain.engineering.MaterialTransfer; +import com.ruoyi.system.domain.engineering.MaterialInventory; +import com.ruoyi.system.domain.engineering.MaterialInventoryDetail; +import com.ruoyi.system.domain.engineering.MaterialScrap; import com.ruoyi.system.service.engineering.IMaterialService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -25,6 +32,7 @@ public class MaterialController extends BaseController { @PreAuthorize("@ss.hasPermi('system:engineering:material:list')") @GetMapping("/list") public TableDataInfo list(Material material) { + startPage(); return materialService.selectMaterialList(material); } @@ -91,6 +99,7 @@ public class MaterialController extends BaseController { @PreAuthorize("@ss.hasPermi('system:engineering:material:in:list')") @GetMapping("/in/list") public TableDataInfo listMaterialIn(MaterialIn materialIn) { + startPage(); return materialService.selectMaterialInList(materialIn); } @@ -131,6 +140,7 @@ public class MaterialController extends BaseController { @PreAuthorize("@ss.hasPermi('system:engineering:material:out:list')") @GetMapping("/out/list") public TableDataInfo listMaterialOut(MaterialOut materialOut) { + startPage(); return materialService.selectMaterialOutList(materialOut); } @@ -139,4 +149,291 @@ public class MaterialController extends BaseController { public AjaxResult getMaterialOut(@PathVariable Long outId) { return AjaxResult.success(materialService.selectMaterialOutById(outId)); } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:return:list')") + @GetMapping("/return/list") + public TableDataInfo listMaterialReturn(MaterialReturn materialReturn) { + startPage(); + return materialService.selectMaterialReturnList(materialReturn); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:return:query')") + @GetMapping("/return/{returnId}") + public AjaxResult getMaterialReturn(@PathVariable Long returnId) { + return AjaxResult.success(materialService.selectMaterialReturnById(returnId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:return:add')") + @Log(title = "退货单管理", businessType = BusinessType.INSERT) + @PostMapping("/return") + public AjaxResult addMaterialReturn(@RequestBody MaterialReturn materialReturn) { + return toAjax(materialService.insertMaterialReturn(materialReturn)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:return:edit')") + @Log(title = "退货单管理", businessType = BusinessType.UPDATE) + @PutMapping("/return") + public AjaxResult updateMaterialReturn(@RequestBody MaterialReturn materialReturn) { + return toAjax(materialService.updateMaterialReturn(materialReturn)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:return:approve')") + @Log(title = "退货单审批", businessType = BusinessType.UPDATE) + @PutMapping("/return/approve/{returnId}") + public AjaxResult approveMaterialReturn(@PathVariable Long returnId) { + return toAjax(materialService.approveMaterialReturn(returnId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:return:remove')") + @Log(title = "退货单删除", businessType = BusinessType.DELETE) + @DeleteMapping("/return/{returnId}") + public AjaxResult deleteMaterialReturn(@PathVariable Long returnId) { + return toAjax(materialService.deleteMaterialReturnById(returnId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:pick:list')") + @GetMapping("/pick/list") + public TableDataInfo listMaterialPick(MaterialPick materialPick) { + startPage(); + return materialService.selectMaterialPickList(materialPick); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:pick:query')") + @GetMapping("/pick/{pickId}") + public AjaxResult getMaterialPick(@PathVariable Long pickId) { + return AjaxResult.success(materialService.selectMaterialPickById(pickId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:pick:add')") + @Log(title = "领料单管理", businessType = BusinessType.INSERT) + @PostMapping("/pick") + public AjaxResult addMaterialPick(@RequestBody MaterialPick materialPick) { + return toAjax(materialService.insertMaterialPick(materialPick)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:pick:edit')") + @Log(title = "领料单管理", businessType = BusinessType.UPDATE) + @PutMapping("/pick") + public AjaxResult updateMaterialPick(@RequestBody MaterialPick materialPick) { + return toAjax(materialService.updateMaterialPick(materialPick)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:pick:approve')") + @Log(title = "领料单审批", businessType = BusinessType.UPDATE) + @PutMapping("/pick/approve/{pickId}") + public AjaxResult approveMaterialPick(@PathVariable Long pickId) { + return toAjax(materialService.approveMaterialPick(pickId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:pick:issue')") + @Log(title = "领料单发放", businessType = BusinessType.UPDATE) + @PutMapping("/pick/issue/{pickId}") + public AjaxResult issueMaterialPick(@PathVariable Long pickId) { + return toAjax(materialService.issueMaterialPick(pickId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:pick:remove')") + @Log(title = "领料单删除", businessType = BusinessType.DELETE) + @DeleteMapping("/pick/{pickId}") + public AjaxResult deleteMaterialPick(@PathVariable Long pickId) { + return toAjax(materialService.deleteMaterialPickById(pickId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:returnBack:list')") + @GetMapping("/returnBack/list") + public TableDataInfo listMaterialReturnBack(MaterialReturnBack materialReturnBack) { + startPage(); + return materialService.selectMaterialReturnBackList(materialReturnBack); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:returnBack:query')") + @GetMapping("/returnBack/{returnBackId}") + public AjaxResult getMaterialReturnBack(@PathVariable Long returnBackId) { + return AjaxResult.success(materialService.selectMaterialReturnBackById(returnBackId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:returnBack:add')") + @Log(title = "还料单管理", businessType = BusinessType.INSERT) + @PostMapping("/returnBack") + public AjaxResult addMaterialReturnBack(@RequestBody MaterialReturnBack materialReturnBack) { + return toAjax(materialService.insertMaterialReturnBack(materialReturnBack)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:returnBack:edit')") + @Log(title = "还料单管理", businessType = BusinessType.UPDATE) + @PutMapping("/returnBack") + public AjaxResult updateMaterialReturnBack(@RequestBody MaterialReturnBack materialReturnBack) { + return toAjax(materialService.updateMaterialReturnBack(materialReturnBack)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:returnBack:approve')") + @Log(title = "还料单审批", businessType = BusinessType.UPDATE) + @PutMapping("/returnBack/approve/{returnBackId}") + public AjaxResult approveMaterialReturnBack(@PathVariable Long returnBackId) { + return toAjax(materialService.approveMaterialReturnBack(returnBackId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:returnBack:remove')") + @Log(title = "还料单删除", businessType = BusinessType.DELETE) + @DeleteMapping("/returnBack/{returnBackId}") + public AjaxResult deleteMaterialReturnBack(@PathVariable Long returnBackId) { + return toAjax(materialService.deleteMaterialReturnBackById(returnBackId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:transfer:list')") + @GetMapping("/transfer/list") + public TableDataInfo listMaterialTransfer(MaterialTransfer materialTransfer) { + startPage(); + return materialService.selectMaterialTransferList(materialTransfer); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:transfer:query')") + @GetMapping("/transfer/{transferId}") + public AjaxResult getMaterialTransfer(@PathVariable Long transferId) { + return AjaxResult.success(materialService.selectMaterialTransferById(transferId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:transfer:add')") + @Log(title = "调拨单管理", businessType = BusinessType.INSERT) + @PostMapping("/transfer") + public AjaxResult addMaterialTransfer(@RequestBody MaterialTransfer materialTransfer) { + return toAjax(materialService.insertMaterialTransfer(materialTransfer)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:transfer:edit')") + @Log(title = "调拨单管理", businessType = BusinessType.UPDATE) + @PutMapping("/transfer") + public AjaxResult updateMaterialTransfer(@RequestBody MaterialTransfer materialTransfer) { + return toAjax(materialService.updateMaterialTransfer(materialTransfer)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:transfer:approve')") + @Log(title = "调拨单审批", businessType = BusinessType.UPDATE) + @PutMapping("/transfer/approve/{transferId}") + public AjaxResult approveMaterialTransfer(@PathVariable Long transferId) { + return toAjax(materialService.approveMaterialTransfer(transferId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:transfer:remove')") + @Log(title = "调拨单删除", businessType = BusinessType.DELETE) + @DeleteMapping("/transfer/{transferId}") + public AjaxResult deleteMaterialTransfer(@PathVariable Long transferId) { + return toAjax(materialService.deleteMaterialTransferById(transferId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:list')") + @GetMapping("/inventory/list") + public TableDataInfo listMaterialInventory(MaterialInventory materialInventory) { + startPage(); + return materialService.selectMaterialInventoryList(materialInventory); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:query')") + @GetMapping("/inventory/{inventoryId}") + public AjaxResult getMaterialInventory(@PathVariable Long inventoryId) { + return AjaxResult.success(materialService.selectMaterialInventoryById(inventoryId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:add')") + @Log(title = "盘点单管理", businessType = BusinessType.INSERT) + @PostMapping("/inventory") + public AjaxResult addMaterialInventory(@RequestBody MaterialInventory materialInventory) { + return toAjax(materialService.insertMaterialInventory(materialInventory)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:edit')") + @Log(title = "盘点单管理", businessType = BusinessType.UPDATE) + @PutMapping("/inventory") + public AjaxResult updateMaterialInventory(@RequestBody MaterialInventory materialInventory) { + return toAjax(materialService.updateMaterialInventory(materialInventory)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:complete')") + @Log(title = "盘点单完成", businessType = BusinessType.UPDATE) + @PutMapping("/inventory/complete/{inventoryId}") + public AjaxResult completeMaterialInventory(@PathVariable Long inventoryId) { + return toAjax(materialService.completeMaterialInventory(inventoryId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:adjust')") + @Log(title = "盘点单调整", businessType = BusinessType.UPDATE) + @PutMapping("/inventory/adjust/{inventoryId}") + public AjaxResult adjustMaterialInventory(@PathVariable Long inventoryId) { + return toAjax(materialService.adjustMaterialInventory(inventoryId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:remove')") + @Log(title = "盘点单删除", businessType = BusinessType.DELETE) + @DeleteMapping("/inventory/{inventoryId}") + public AjaxResult deleteMaterialInventory(@PathVariable Long inventoryId) { + return toAjax(materialService.deleteMaterialInventoryById(inventoryId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:detail:list')") + @GetMapping("/inventory/detail/{inventoryId}") + public AjaxResult getMaterialInventoryDetail(@PathVariable Long inventoryId) { + return AjaxResult.success(materialService.selectMaterialInventoryDetailList(inventoryId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:detail:add')") + @Log(title = "盘点明细管理", businessType = BusinessType.INSERT) + @PostMapping("/inventory/detail") + public AjaxResult addMaterialInventoryDetail(@RequestBody MaterialInventoryDetail detail) { + return toAjax(materialService.insertMaterialInventoryDetail(detail)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:detail:edit')") + @Log(title = "盘点明细管理", businessType = BusinessType.UPDATE) + @PutMapping("/inventory/detail") + public AjaxResult updateMaterialInventoryDetail(@RequestBody MaterialInventoryDetail detail) { + return toAjax(materialService.updateMaterialInventoryDetail(detail)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:inventory:detail:adjust')") + @Log(title = "盘点明细调整", businessType = BusinessType.UPDATE) + @PutMapping("/inventory/detail/adjust/{detailId}") + public AjaxResult adjustMaterialInventoryDetail(@PathVariable Long detailId) { + return toAjax(materialService.adjustMaterialInventoryDetail(detailId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:scrap:list')") + @GetMapping("/scrap/list") + public TableDataInfo listMaterialScrap(MaterialScrap materialScrap) { + startPage(); + return materialService.selectMaterialScrapList(materialScrap); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:scrap:query')") + @GetMapping("/scrap/{scrapId}") + public AjaxResult getMaterialScrap(@PathVariable Long scrapId) { + return AjaxResult.success(materialService.selectMaterialScrapById(scrapId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:scrap:add')") + @Log(title = "报损报溢管理", businessType = BusinessType.INSERT) + @PostMapping("/scrap") + public AjaxResult addMaterialScrap(@RequestBody MaterialScrap materialScrap) { + return toAjax(materialService.insertMaterialScrap(materialScrap)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:scrap:edit')") + @Log(title = "报损报溢管理", businessType = BusinessType.UPDATE) + @PutMapping("/scrap") + public AjaxResult updateMaterialScrap(@RequestBody MaterialScrap materialScrap) { + return toAjax(materialService.updateMaterialScrap(materialScrap)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:scrap:approve')") + @Log(title = "报损报溢审批", businessType = BusinessType.UPDATE) + @PutMapping("/scrap/approve/{scrapId}") + public AjaxResult approveMaterialScrap(@PathVariable Long scrapId) { + return toAjax(materialService.approveMaterialScrap(scrapId)); + } + + @PreAuthorize("@ss.hasPermi('system:engineering:material:scrap:remove')") + @Log(title = "报损报溢删除", businessType = BusinessType.DELETE) + @DeleteMapping("/scrap/{scrapId}") + public AjaxResult deleteMaterialScrap(@PathVariable Long scrapId) { + return toAjax(materialService.deleteMaterialScrapById(scrapId)); + } } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/PaymentController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/PaymentController.java index 97c74410..71936a90 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/PaymentController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/PaymentController.java @@ -23,6 +23,7 @@ public class PaymentController extends BaseController { @PreAuthorize("@ss.hasPermi('system:engineering:payment:list')") @GetMapping("/list") public TableDataInfo list(Payment payment) { + startPage(); return paymentService.selectPaymentList(payment); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/SupplierController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/SupplierController.java index 432dc948..769c2ef4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/SupplierController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/engineering/SupplierController.java @@ -25,6 +25,7 @@ public class SupplierController extends BaseController { @PreAuthorize("@ss.hasPermi('system:engineering:supplier:list')") @GetMapping("/list") public TableDataInfo list(Supplier supplier) { + startPage(); return supplierService.selectSupplierList(supplier); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Construction.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Construction.java index 150b347b..f6484547 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Construction.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Construction.java @@ -30,7 +30,7 @@ public class Construction extends BaseEntity { @Excel(name = "阶段编码") private String phaseCode; - private Long parentPhaseId; + private Long parentId; private String constructionContent; @@ -133,12 +133,12 @@ public class Construction extends BaseEntity { this.phaseCode = phaseCode; } - public Long getParentPhaseId() { - return parentPhaseId; + public Long getParentId() { + return parentId; } - public void setParentPhaseId(Long parentPhaseId) { - this.parentPhaseId = parentPhaseId; + public void setParentId(Long parentId) { + this.parentId = parentId; } public String getConstructionContent() { @@ -346,6 +346,10 @@ public class Construction extends BaseEntity { .toString(); } + private boolean getParentPhaseId() { + return false; + } + private Integer delFlag; public Integer getDelFlag() { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Material.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Material.java index 0110302e..f9fc1e2a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Material.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Material.java @@ -29,7 +29,7 @@ public class Material extends BaseEntity { private String materialType; @Excel(name = "物料分类") - private String materialCategory; + private String category; @Size(max = 200, message = "规格型号长度不能超过200个字符") @Excel(name = "规格型号") @@ -123,12 +123,12 @@ public class Material extends BaseEntity { this.materialType = materialType; } - public String getMaterialCategory() { - return materialCategory; + public String getCategory() { + return category; } - public void setMaterialCategory(String materialCategory) { - this.materialCategory = materialCategory; + public void setCategory(String category) { + this.category = category; } public String getSpecification() { @@ -317,6 +317,10 @@ public class Material extends BaseEntity { .toString(); } + private boolean getMaterialCategory() { + return false; + } + private Integer delFlag; public Integer getDelFlag() { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialIn.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialIn.java index ae2dd339..2e568eb9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialIn.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialIn.java @@ -59,6 +59,14 @@ public class MaterialIn extends BaseEntity { @Excel(name = "状态", readConverterExp = "pending=待审核,approved=已审核,canceled=已取消") private String status; + private Long contractId; + + @Excel(name = "合同编号") + private String contractNo; + + @Excel(name = "合同名称") + private String contractName; + private String remark; public Long getInId() { @@ -181,6 +189,30 @@ public class MaterialIn extends BaseEntity { this.status = status; } + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public String getContractNo() { + return contractNo; + } + + public void setContractNo(String contractNo) { + this.contractNo = contractNo; + } + + public String getContractName() { + return contractName; + } + + public void setContractName(String contractName) { + this.contractName = contractName; + } + public String getRemark() { return remark; } @@ -207,6 +239,9 @@ public class MaterialIn extends BaseEntity { .append("warehouse", getWarehouse()) .append("location", getLocation()) .append("status", getStatus()) + .append("contractId", getContractId()) + .append("contractNo", getContractNo()) + .append("contractName", getContractName()) .append("remark", getRemark()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialInventory.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialInventory.java new file mode 100644 index 00000000..18b65fae --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialInventory.java @@ -0,0 +1,142 @@ +package com.ruoyi.system.domain.engineering; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +public class MaterialInventory extends BaseEntity { + private static final long serialVersionUID = 1L; + + private Long inventoryId; + + @Excel(name = "盘点单号") + private String inventoryNo; + + @Excel(name = "盘点日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date inventoryDate; + + @Excel(name = "仓库") + private String warehouse; + + @Excel(name = "盘点类型", readConverterExp = "full=全盘,partial=抽盘") + private String inventoryType; + + @Excel(name = "状态", readConverterExp = "pending=待盘点,in_progress=盘点中,completed=已完成,adjusted=已调整") + private String status; + + @Excel(name = "盘点人员") + private String inventoryPerson; + + @Excel(name = "差异数量") + private BigDecimal diffQuantity; + + @Excel(name = "差异金额") + private BigDecimal diffAmount; + + @Excel(name = "备注") + private String remark; + + public Long getInventoryId() { + return inventoryId; + } + + public void setInventoryId(Long inventoryId) { + this.inventoryId = inventoryId; + } + + public String getInventoryNo() { + return inventoryNo; + } + + public void setInventoryNo(String inventoryNo) { + this.inventoryNo = inventoryNo; + } + + public Date getInventoryDate() { + return inventoryDate; + } + + public void setInventoryDate(Date inventoryDate) { + this.inventoryDate = inventoryDate; + } + + public String getWarehouse() { + return warehouse; + } + + public void setWarehouse(String warehouse) { + this.warehouse = warehouse; + } + + public String getInventoryType() { + return inventoryType; + } + + public void setInventoryType(String inventoryType) { + this.inventoryType = inventoryType; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getInventoryPerson() { + return inventoryPerson; + } + + public void setInventoryPerson(String inventoryPerson) { + this.inventoryPerson = inventoryPerson; + } + + public BigDecimal getDiffQuantity() { + return diffQuantity; + } + + public void setDiffQuantity(BigDecimal diffQuantity) { + this.diffQuantity = diffQuantity; + } + + public BigDecimal getDiffAmount() { + return diffAmount; + } + + public void setDiffAmount(BigDecimal diffAmount) { + this.diffAmount = diffAmount; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("inventoryId", getInventoryId()) + .append("inventoryNo", getInventoryNo()) + .append("inventoryDate", getInventoryDate()) + .append("warehouse", getWarehouse()) + .append("inventoryType", getInventoryType()) + .append("status", getStatus()) + .append("inventoryPerson", getInventoryPerson()) + .append("diffQuantity", getDiffQuantity()) + .append("diffAmount", getDiffAmount()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialInventoryDetail.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialInventoryDetail.java new file mode 100644 index 00000000..190efaaa --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialInventoryDetail.java @@ -0,0 +1,171 @@ +package com.ruoyi.system.domain.engineering; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + +public class MaterialInventoryDetail extends BaseEntity { + private static final long serialVersionUID = 1L; + + private Long detailId; + + private Long inventoryId; + + private Long materialId; + + @Excel(name = "物料编码") + private String materialCode; + + @Excel(name = "物料名称") + private String materialName; + + @Excel(name = "规格型号") + private String specification; + + @Excel(name = "计量单位") + private String unit; + + @Excel(name = "系统库存") + private BigDecimal systemStock; + + @Excel(name = "实际库存") + private BigDecimal actualStock; + + @Excel(name = "差异数量") + private BigDecimal diffQuantity; + + @Excel(name = "差异原因") + private String diffReason; + + @Excel(name = "处理状态", readConverterExp = "pending=待处理,adjusted=已调整") + private String status; + + @Excel(name = "备注") + private String remark; + + public Long getDetailId() { + return detailId; + } + + public void setDetailId(Long detailId) { + this.detailId = detailId; + } + + public Long getInventoryId() { + return inventoryId; + } + + public void setInventoryId(Long inventoryId) { + this.inventoryId = inventoryId; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getSpecification() { + return specification; + } + + public void setSpecification(String specification) { + this.specification = specification; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public BigDecimal getSystemStock() { + return systemStock; + } + + public void setSystemStock(BigDecimal systemStock) { + this.systemStock = systemStock; + } + + public BigDecimal getActualStock() { + return actualStock; + } + + public void setActualStock(BigDecimal actualStock) { + this.actualStock = actualStock; + } + + public BigDecimal getDiffQuantity() { + return diffQuantity; + } + + public void setDiffQuantity(BigDecimal diffQuantity) { + this.diffQuantity = diffQuantity; + } + + public String getDiffReason() { + return diffReason; + } + + public void setDiffReason(String diffReason) { + this.diffReason = diffReason; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("detailId", getDetailId()) + .append("inventoryId", getInventoryId()) + .append("materialId", getMaterialId()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("specification", getSpecification()) + .append("unit", getUnit()) + .append("systemStock", getSystemStock()) + .append("actualStock", getActualStock()) + .append("diffQuantity", getDiffQuantity()) + .append("diffReason", getDiffReason()) + .append("status", getStatus()) + .append("remark", getRemark()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialOut.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialOut.java index 22e9613b..784c121a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialOut.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialOut.java @@ -62,6 +62,16 @@ public class MaterialOut extends BaseEntity { @Excel(name = "状态", readConverterExp = "pending=待审核,approved=已审核,canceled=已取消") private String status; + private Long constructionId; + + @Excel(name = "施工节点") + private String constructionName; + + private Long contractId; + + @Excel(name = "合同编号") + private String contractNo; + private String remark; public Long getOutId() { @@ -192,6 +202,38 @@ public class MaterialOut extends BaseEntity { this.status = status; } + public Long getConstructionId() { + return constructionId; + } + + public void setConstructionId(Long constructionId) { + this.constructionId = constructionId; + } + + public String getConstructionName() { + return constructionName; + } + + public void setConstructionName(String constructionName) { + this.constructionName = constructionName; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public String getContractNo() { + return contractNo; + } + + public void setContractNo(String contractNo) { + this.contractNo = contractNo; + } + public String getRemark() { return remark; } @@ -219,6 +261,10 @@ public class MaterialOut extends BaseEntity { .append("warehouse", getWarehouse()) .append("location", getLocation()) .append("status", getStatus()) + .append("constructionId", getConstructionId()) + .append("constructionName", getConstructionName()) + .append("contractId", getContractId()) + .append("contractNo", getContractNo()) .append("remark", getRemark()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialPick.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialPick.java new file mode 100644 index 00000000..551e4995 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialPick.java @@ -0,0 +1,261 @@ +package com.ruoyi.system.domain.engineering; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Date; + +public class MaterialPick extends BaseEntity { + private static final long serialVersionUID = 1L; + + private Long pickId; + + @Excel(name = "领料单号") + private String pickNo; + + @NotNull(message = "物料ID不能为空") + private Long materialId; + + @Excel(name = "物料编码") + private String materialCode; + + @Excel(name = "物料名称") + private String materialName; + + @NotNull(message = "领料数量不能为空") + @Excel(name = "领料数量") + private BigDecimal quantity; + + @Excel(name = "单价") + private BigDecimal unitPrice; + + @Excel(name = "金额") + private BigDecimal amount; + + @Excel(name = "领料日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date pickDate; + + @Excel(name = "使用部门") + private String deptName; + + @Excel(name = "领用人") + private String receiver; + + @Excel(name = "用途") + private String purpose; + + @Excel(name = "仓库") + private String warehouse; + + @Excel(name = "库位") + private String location; + + @Excel(name = "状态", readConverterExp = "pending=待审核,approved=已审核,issued=已发放,canceled=已取消") + private String status; + + private Long constructionId; + + @Excel(name = "施工节点") + private String constructionName; + + private Long contractId; + + @Excel(name = "合同编号") + private String contractNo; + + private String remark; + + public Long getPickId() { + return pickId; + } + + public void setPickId(Long pickId) { + this.pickId = pickId; + } + + public String getPickNo() { + return pickNo; + } + + public void setPickNo(String pickNo) { + this.pickNo = pickNo; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public Date getPickDate() { + return pickDate; + } + + public void setPickDate(Date pickDate) { + this.pickDate = pickDate; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getReceiver() { + return receiver; + } + + public void setReceiver(String receiver) { + this.receiver = receiver; + } + + public String getPurpose() { + return purpose; + } + + public void setPurpose(String purpose) { + this.purpose = purpose; + } + + public String getWarehouse() { + return warehouse; + } + + public void setWarehouse(String warehouse) { + this.warehouse = warehouse; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Long getConstructionId() { + return constructionId; + } + + public void setConstructionId(Long constructionId) { + this.constructionId = constructionId; + } + + public String getConstructionName() { + return constructionName; + } + + public void setConstructionName(String constructionName) { + this.constructionName = constructionName; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public String getContractNo() { + return contractNo; + } + + public void setContractNo(String contractNo) { + this.contractNo = contractNo; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("pickId", getPickId()) + .append("pickNo", getPickNo()) + .append("materialId", getMaterialId()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("quantity", getQuantity()) + .append("unitPrice", getUnitPrice()) + .append("amount", getAmount()) + .append("pickDate", getPickDate()) + .append("deptName", getDeptName()) + .append("receiver", getReceiver()) + .append("purpose", getPurpose()) + .append("warehouse", getWarehouse()) + .append("location", getLocation()) + .append("status", getStatus()) + .append("constructionId", getConstructionId()) + .append("constructionName", getConstructionName()) + .append("contractId", getContractId()) + .append("contractNo", getContractNo()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialReturn.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialReturn.java new file mode 100644 index 00000000..74c98e22 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialReturn.java @@ -0,0 +1,237 @@ +package com.ruoyi.system.domain.engineering; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Date; + +public class MaterialReturn extends BaseEntity { + private static final long serialVersionUID = 1L; + + private Long returnId; + + @Excel(name = "退货单号") + private String returnNo; + + @NotNull(message = "物料ID不能为空") + private Long materialId; + + @Excel(name = "物料编码") + private String materialCode; + + @Excel(name = "物料名称") + private String materialName; + + @NotNull(message = "退货数量不能为空") + @Excel(name = "退货数量") + private BigDecimal quantity; + + @Excel(name = "单价") + private BigDecimal unitPrice; + + @Excel(name = "金额") + private BigDecimal amount; + + @Excel(name = "退货日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date returnDate; + + @Excel(name = "退货原因") + private String returnReason; + + private Long supplierId; + + @Excel(name = "供应商名称") + private String supplierName; + + @Excel(name = "仓库") + private String warehouse; + + @Excel(name = "库位") + private String location; + + @Excel(name = "状态", readConverterExp = "pending=待审核,approved=已审核,canceled=已取消") + private String status; + + private Long contractId; + + @Excel(name = "合同编号") + private String contractNo; + + private String remark; + + public Long getReturnId() { + return returnId; + } + + public void setReturnId(Long returnId) { + this.returnId = returnId; + } + + public String getReturnNo() { + return returnNo; + } + + public void setReturnNo(String returnNo) { + this.returnNo = returnNo; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public Date getReturnDate() { + return returnDate; + } + + public void setReturnDate(Date returnDate) { + this.returnDate = returnDate; + } + + public String getReturnReason() { + return returnReason; + } + + public void setReturnReason(String returnReason) { + this.returnReason = returnReason; + } + + public Long getSupplierId() { + return supplierId; + } + + public void setSupplierId(Long supplierId) { + this.supplierId = supplierId; + } + + public String getSupplierName() { + return supplierName; + } + + public void setSupplierName(String supplierName) { + this.supplierName = supplierName; + } + + public String getWarehouse() { + return warehouse; + } + + public void setWarehouse(String warehouse) { + this.warehouse = warehouse; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Long getContractId() { + return contractId; + } + + public void setContractId(Long contractId) { + this.contractId = contractId; + } + + public String getContractNo() { + return contractNo; + } + + public void setContractNo(String contractNo) { + this.contractNo = contractNo; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("returnId", getReturnId()) + .append("returnNo", getReturnNo()) + .append("materialId", getMaterialId()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("quantity", getQuantity()) + .append("unitPrice", getUnitPrice()) + .append("amount", getAmount()) + .append("returnDate", getReturnDate()) + .append("returnReason", getReturnReason()) + .append("supplierId", getSupplierId()) + .append("supplierName", getSupplierName()) + .append("warehouse", getWarehouse()) + .append("location", getLocation()) + .append("status", getStatus()) + .append("contractId", getContractId()) + .append("contractNo", getContractNo()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialReturnBack.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialReturnBack.java new file mode 100644 index 00000000..5fc320e2 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialReturnBack.java @@ -0,0 +1,226 @@ +package com.ruoyi.system.domain.engineering; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Date; + +public class MaterialReturnBack extends BaseEntity { + private static final long serialVersionUID = 1L; + + private Long returnBackId; + + @Excel(name = "还料单号") + private String returnBackNo; + + private Long pickId; + + @Excel(name = "原领料单号") + private String pickNo; + + @NotNull(message = "物料ID不能为空") + private Long materialId; + + @Excel(name = "物料编码") + private String materialCode; + + @Excel(name = "物料名称") + private String materialName; + + @NotNull(message = "还料数量不能为空") + @Excel(name = "还料数量") + private BigDecimal quantity; + + @Excel(name = "单价") + private BigDecimal unitPrice; + + @Excel(name = "金额") + private BigDecimal amount; + + @Excel(name = "还料日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date returnBackDate; + + @Excel(name = "使用部门") + private String deptName; + + @Excel(name = "还料人") + private String returnBackPerson; + + @Excel(name = "仓库") + private String warehouse; + + @Excel(name = "库位") + private String location; + + @Excel(name = "状态", readConverterExp = "pending=待审核,approved=已审核,canceled=已取消") + private String status; + + private String remark; + + public Long getReturnBackId() { + return returnBackId; + } + + public void setReturnBackId(Long returnBackId) { + this.returnBackId = returnBackId; + } + + public String getReturnBackNo() { + return returnBackNo; + } + + public void setReturnBackNo(String returnBackNo) { + this.returnBackNo = returnBackNo; + } + + public Long getPickId() { + return pickId; + } + + public void setPickId(Long pickId) { + this.pickId = pickId; + } + + public String getPickNo() { + return pickNo; + } + + public void setPickNo(String pickNo) { + this.pickNo = pickNo; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public Date getReturnBackDate() { + return returnBackDate; + } + + public void setReturnBackDate(Date returnBackDate) { + this.returnBackDate = returnBackDate; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getReturnBackPerson() { + return returnBackPerson; + } + + public void setReturnBackPerson(String returnBackPerson) { + this.returnBackPerson = returnBackPerson; + } + + public String getWarehouse() { + return warehouse; + } + + public void setWarehouse(String warehouse) { + this.warehouse = warehouse; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("returnBackId", getReturnBackId()) + .append("returnBackNo", getReturnBackNo()) + .append("pickId", getPickId()) + .append("pickNo", getPickNo()) + .append("materialId", getMaterialId()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("quantity", getQuantity()) + .append("unitPrice", getUnitPrice()) + .append("amount", getAmount()) + .append("returnBackDate", getReturnBackDate()) + .append("deptName", getDeptName()) + .append("returnBackPerson", getReturnBackPerson()) + .append("warehouse", getWarehouse()) + .append("location", getLocation()) + .append("status", getStatus()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialScrap.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialScrap.java new file mode 100644 index 00000000..85fcf70c --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialScrap.java @@ -0,0 +1,226 @@ +package com.ruoyi.system.domain.engineering; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Date; + +public class MaterialScrap extends BaseEntity { + private static final long serialVersionUID = 1L; + + private Long scrapId; + + @Excel(name = "报损报溢单号") + private String scrapNo; + + @NotNull(message = "物料ID不能为空") + private Long materialId; + + @Excel(name = "物料编码") + private String materialCode; + + @Excel(name = "物料名称") + private String materialName; + + @NotNull(message = "数量不能为空") + @Excel(name = "数量") + private BigDecimal quantity; + + @Excel(name = "单价") + private BigDecimal unitPrice; + + @Excel(name = "金额") + private BigDecimal amount; + + @Excel(name = "类型", readConverterExp = "scrap=报损,overflow=报溢") + private String scrapType; + + @Excel(name = "原因") + private String reason; + + @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date scrapDate; + + @Excel(name = "仓库") + private String warehouse; + + @Excel(name = "库位") + private String location; + + @Excel(name = "状态", readConverterExp = "pending=待审核,approved=已审核,canceled=已取消") + private String status; + + private Long inventoryId; + + @Excel(name = "关联盘点单号") + private String inventoryNo; + + private String remark; + + public Long getScrapId() { + return scrapId; + } + + public void setScrapId(Long scrapId) { + this.scrapId = scrapId; + } + + public String getScrapNo() { + return scrapNo; + } + + public void setScrapNo(String scrapNo) { + this.scrapNo = scrapNo; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public String getScrapType() { + return scrapType; + } + + public void setScrapType(String scrapType) { + this.scrapType = scrapType; + } + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Date getScrapDate() { + return scrapDate; + } + + public void setScrapDate(Date scrapDate) { + this.scrapDate = scrapDate; + } + + public String getWarehouse() { + return warehouse; + } + + public void setWarehouse(String warehouse) { + this.warehouse = warehouse; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Long getInventoryId() { + return inventoryId; + } + + public void setInventoryId(Long inventoryId) { + this.inventoryId = inventoryId; + } + + public String getInventoryNo() { + return inventoryNo; + } + + public void setInventoryNo(String inventoryNo) { + this.inventoryNo = inventoryNo; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("scrapId", getScrapId()) + .append("scrapNo", getScrapNo()) + .append("materialId", getMaterialId()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("quantity", getQuantity()) + .append("unitPrice", getUnitPrice()) + .append("amount", getAmount()) + .append("scrapType", getScrapType()) + .append("reason", getReason()) + .append("scrapDate", getScrapDate()) + .append("warehouse", getWarehouse()) + .append("location", getLocation()) + .append("status", getStatus()) + .append("inventoryId", getInventoryId()) + .append("inventoryNo", getInventoryNo()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialTransfer.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialTransfer.java new file mode 100644 index 00000000..0b6334c7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/MaterialTransfer.java @@ -0,0 +1,238 @@ +package com.ruoyi.system.domain.engineering; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Date; + +public class MaterialTransfer extends BaseEntity { + private static final long serialVersionUID = 1L; + + private Long transferId; + + @Excel(name = "调拨单号") + private String transferNo; + + @NotNull(message = "物料ID不能为空") + private Long materialId; + + @Excel(name = "物料编码") + private String materialCode; + + @Excel(name = "物料名称") + private String materialName; + + @NotNull(message = "调拨数量不能为空") + @Excel(name = "调拨数量") + private BigDecimal quantity; + + @Excel(name = "单价") + private BigDecimal unitPrice; + + @Excel(name = "金额") + private BigDecimal amount; + + @Excel(name = "调拨日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date transferDate; + + @Excel(name = "调出仓库") + private String fromWarehouse; + + @Excel(name = "调出库位") + private String fromLocation; + + @Excel(name = "调入仓库") + private String toWarehouse; + + @Excel(name = "调入库位") + private String toLocation; + + @Excel(name = "调拨类型", readConverterExp = "out=调拨出库,in=调拨入库") + private String transferType; + + @Excel(name = "状态", readConverterExp = "pending=待审核,approved=已审核,canceled=已取消") + private String status; + + private Long relatedTransferId; + + @Excel(name = "关联调拨单号") + private String relatedTransferNo; + + private String remark; + + public Long getTransferId() { + return transferId; + } + + public void setTransferId(Long transferId) { + this.transferId = transferId; + } + + public String getTransferNo() { + return transferNo; + } + + public void setTransferNo(String transferNo) { + this.transferNo = transferNo; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public Date getTransferDate() { + return transferDate; + } + + public void setTransferDate(Date transferDate) { + this.transferDate = transferDate; + } + + public String getFromWarehouse() { + return fromWarehouse; + } + + public void setFromWarehouse(String fromWarehouse) { + this.fromWarehouse = fromWarehouse; + } + + public String getFromLocation() { + return fromLocation; + } + + public void setFromLocation(String fromLocation) { + this.fromLocation = fromLocation; + } + + public String getToWarehouse() { + return toWarehouse; + } + + public void setToWarehouse(String toWarehouse) { + this.toWarehouse = toWarehouse; + } + + public String getToLocation() { + return toLocation; + } + + public void setToLocation(String toLocation) { + this.toLocation = toLocation; + } + + public String getTransferType() { + return transferType; + } + + public void setTransferType(String transferType) { + this.transferType = transferType; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Long getRelatedTransferId() { + return relatedTransferId; + } + + public void setRelatedTransferId(Long relatedTransferId) { + this.relatedTransferId = relatedTransferId; + } + + public String getRelatedTransferNo() { + return relatedTransferNo; + } + + public void setRelatedTransferNo(String relatedTransferNo) { + this.relatedTransferNo = relatedTransferNo; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("transferId", getTransferId()) + .append("transferNo", getTransferNo()) + .append("materialId", getMaterialId()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("quantity", getQuantity()) + .append("unitPrice", getUnitPrice()) + .append("amount", getAmount()) + .append("transferDate", getTransferDate()) + .append("fromWarehouse", getFromWarehouse()) + .append("fromLocation", getFromLocation()) + .append("toWarehouse", getToWarehouse()) + .append("toLocation", getToLocation()) + .append("transferType", getTransferType()) + .append("status", getStatus()) + .append("relatedTransferId", getRelatedTransferId()) + .append("relatedTransferNo", getRelatedTransferNo()) + .append("remark", getRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Supplier.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Supplier.java index 0b3e3aa6..c519f4de 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Supplier.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/engineering/Supplier.java @@ -43,11 +43,11 @@ public class Supplier extends BaseEntity { @Size(max = 100, message = "联系人长度不能超过100个字符") @Excel(name = "联系人") - private String contact; + private String contactPerson; @Size(max = 50, message = "联系电话长度不能超过50个字符") @Excel(name = "联系电话") - private String phone; + private String contactPhone; @Size(max = 50, message = "手机号长度不能超过50个字符") @Excel(name = "手机号") @@ -199,20 +199,20 @@ public class Supplier extends BaseEntity { this.legalPerson = legalPerson; } - public String getContact() { - return contact; + public String getContactPerson() { + return contactPerson; } - public void setContact(String contact) { - this.contact = contact; + public void setContactPerson(String contactPerson) { + this.contactPerson = contactPerson; } - public String getPhone() { - return phone; + public String getContactPhone() { + return contactPhone; } - public void setPhone(String phone) { - this.phone = phone; + public void setContactPhone(String contactPhone) { + this.contactPhone = contactPhone; } public String getMobile() { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialInventoryDetailMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialInventoryDetailMapper.java new file mode 100644 index 00000000..82a46f51 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialInventoryDetailMapper.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.mapper.engineering; + +import com.ruoyi.system.domain.engineering.MaterialInventoryDetail; + +import java.util.List; + +public interface MaterialInventoryDetailMapper { + + List selectMaterialInventoryDetailList(MaterialInventoryDetail detail); + + MaterialInventoryDetail selectMaterialInventoryDetailById(Long detailId); + + int insertMaterialInventoryDetail(MaterialInventoryDetail detail); + + int updateMaterialInventoryDetail(MaterialInventoryDetail detail); + + int updateMaterialInventoryDetailStatus(Long detailId, String status); + + int deleteMaterialInventoryDetailById(Long detailId); + + int deleteMaterialInventoryDetailByInventoryId(Long inventoryId); +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialInventoryMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialInventoryMapper.java new file mode 100644 index 00000000..c1ee7553 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialInventoryMapper.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.mapper.engineering; + +import com.ruoyi.system.domain.engineering.MaterialInventory; + +import java.util.List; + +public interface MaterialInventoryMapper { + + List selectMaterialInventoryList(MaterialInventory materialInventory); + + MaterialInventory selectMaterialInventoryById(Long inventoryId); + + int insertMaterialInventory(MaterialInventory materialInventory); + + int updateMaterialInventory(MaterialInventory materialInventory); + + int updateMaterialInventoryStatus(Long inventoryId, String status); + + int deleteMaterialInventoryById(Long inventoryId); + + int deleteMaterialInventoryByIds(Long[] inventoryIds); +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialPickMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialPickMapper.java new file mode 100644 index 00000000..29a46838 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialPickMapper.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.mapper.engineering; + +import com.ruoyi.system.domain.engineering.MaterialPick; + +import java.util.List; + +public interface MaterialPickMapper { + + List selectMaterialPickList(MaterialPick materialPick); + + MaterialPick selectMaterialPickById(Long pickId); + + int insertMaterialPick(MaterialPick materialPick); + + int updateMaterialPick(MaterialPick materialPick); + + int updateMaterialPickStatus(Long pickId, String status); + + int deleteMaterialPickById(Long pickId); + + int deleteMaterialPickByIds(Long[] pickIds); +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialReturnBackMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialReturnBackMapper.java new file mode 100644 index 00000000..814cb1c5 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialReturnBackMapper.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.mapper.engineering; + +import com.ruoyi.system.domain.engineering.MaterialReturnBack; + +import java.util.List; + +public interface MaterialReturnBackMapper { + + List selectMaterialReturnBackList(MaterialReturnBack materialReturnBack); + + MaterialReturnBack selectMaterialReturnBackById(Long returnBackId); + + int insertMaterialReturnBack(MaterialReturnBack materialReturnBack); + + int updateMaterialReturnBack(MaterialReturnBack materialReturnBack); + + int updateMaterialReturnBackStatus(Long returnBackId, String status); + + int deleteMaterialReturnBackById(Long returnBackId); + + int deleteMaterialReturnBackByIds(Long[] returnBackIds); +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialReturnMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialReturnMapper.java new file mode 100644 index 00000000..5aa1be9e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialReturnMapper.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.mapper.engineering; + +import com.ruoyi.system.domain.engineering.MaterialReturn; + +import java.util.List; + +public interface MaterialReturnMapper { + + List selectMaterialReturnList(MaterialReturn materialReturn); + + MaterialReturn selectMaterialReturnById(Long returnId); + + int insertMaterialReturn(MaterialReturn materialReturn); + + int updateMaterialReturn(MaterialReturn materialReturn); + + int updateMaterialReturnStatus(Long returnId, String status); + + int deleteMaterialReturnById(Long returnId); + + int deleteMaterialReturnByIds(Long[] returnIds); +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialScrapMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialScrapMapper.java new file mode 100644 index 00000000..51227093 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialScrapMapper.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.mapper.engineering; + +import com.ruoyi.system.domain.engineering.MaterialScrap; + +import java.util.List; + +public interface MaterialScrapMapper { + + List selectMaterialScrapList(MaterialScrap materialScrap); + + MaterialScrap selectMaterialScrapById(Long scrapId); + + int insertMaterialScrap(MaterialScrap materialScrap); + + int updateMaterialScrap(MaterialScrap materialScrap); + + int updateMaterialScrapStatus(Long scrapId, String status); + + int deleteMaterialScrapById(Long scrapId); + + int deleteMaterialScrapByIds(Long[] scrapIds); +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialTransferMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialTransferMapper.java new file mode 100644 index 00000000..073ad24a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/engineering/MaterialTransferMapper.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.mapper.engineering; + +import com.ruoyi.system.domain.engineering.MaterialTransfer; + +import java.util.List; + +public interface MaterialTransferMapper { + + List selectMaterialTransferList(MaterialTransfer materialTransfer); + + MaterialTransfer selectMaterialTransferById(Long transferId); + + int insertMaterialTransfer(MaterialTransfer materialTransfer); + + int updateMaterialTransfer(MaterialTransfer materialTransfer); + + int updateMaterialTransferStatus(Long transferId, String status); + + int deleteMaterialTransferById(Long transferId); + + int deleteMaterialTransferByIds(Long[] transferIds); +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/engineering/IMaterialService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/engineering/IMaterialService.java index d29a4343..3d05d43d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/engineering/IMaterialService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/engineering/IMaterialService.java @@ -1,9 +1,7 @@ package com.ruoyi.system.service.engineering; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.system.domain.engineering.Material; -import com.ruoyi.system.domain.engineering.MaterialIn; -import com.ruoyi.system.domain.engineering.MaterialOut; +import com.ruoyi.system.domain.engineering.*; import java.util.List; @@ -45,4 +43,92 @@ public interface IMaterialService { public TableDataInfo selectMaterialOutList(MaterialOut materialOut); public MaterialOut selectMaterialOutById(Long outId); + + public List selectWarningMaterials(); + + public String calculateWarningStatus(Material material); + + public int insertMaterialReturn(MaterialReturn materialReturn); + + public int updateMaterialReturn(MaterialReturn materialReturn); + + public int approveMaterialReturn(Long returnId); + + public int deleteMaterialReturnById(Long returnId); + + public TableDataInfo selectMaterialReturnList(MaterialReturn materialReturn); + + public MaterialReturn selectMaterialReturnById(Long returnId); + + public int insertMaterialPick(MaterialPick materialPick); + + public int updateMaterialPick(MaterialPick materialPick); + + public int approveMaterialPick(Long pickId); + + public int issueMaterialPick(Long pickId); + + public int deleteMaterialPickById(Long pickId); + + public TableDataInfo selectMaterialPickList(MaterialPick materialPick); + + public MaterialPick selectMaterialPickById(Long pickId); + + public int insertMaterialReturnBack(MaterialReturnBack materialReturnBack); + + public int updateMaterialReturnBack(MaterialReturnBack materialReturnBack); + + public int approveMaterialReturnBack(Long returnBackId); + + public int deleteMaterialReturnBackById(Long returnBackId); + + public TableDataInfo selectMaterialReturnBackList(MaterialReturnBack materialReturnBack); + + public MaterialReturnBack selectMaterialReturnBackById(Long returnBackId); + + public int insertMaterialTransfer(MaterialTransfer materialTransfer); + + public int updateMaterialTransfer(MaterialTransfer materialTransfer); + + public int approveMaterialTransfer(Long transferId); + + public int deleteMaterialTransferById(Long transferId); + + public TableDataInfo selectMaterialTransferList(MaterialTransfer materialTransfer); + + public MaterialTransfer selectMaterialTransferById(Long transferId); + + public int insertMaterialInventory(MaterialInventory materialInventory); + + public int updateMaterialInventory(MaterialInventory materialInventory); + + public int completeMaterialInventory(Long inventoryId); + + public int adjustMaterialInventory(Long inventoryId); + + public int deleteMaterialInventoryById(Long inventoryId); + + public TableDataInfo selectMaterialInventoryList(MaterialInventory materialInventory); + + public MaterialInventory selectMaterialInventoryById(Long inventoryId); + + public int insertMaterialInventoryDetail(MaterialInventoryDetail detail); + + public int updateMaterialInventoryDetail(MaterialInventoryDetail detail); + + public int adjustMaterialInventoryDetail(Long detailId); + + public List selectMaterialInventoryDetailList(Long inventoryId); + + public int insertMaterialScrap(MaterialScrap materialScrap); + + public int updateMaterialScrap(MaterialScrap materialScrap); + + public int approveMaterialScrap(Long scrapId); + + public int deleteMaterialScrapById(Long scrapId); + + public TableDataInfo selectMaterialScrapList(MaterialScrap materialScrap); + + public MaterialScrap selectMaterialScrapById(Long scrapId); } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/ConstructionServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/ConstructionServiceImpl.java index d345ddf4..74f8d415 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/ConstructionServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/ConstructionServiceImpl.java @@ -24,7 +24,8 @@ public class ConstructionServiceImpl implements IConstructionService { @Override public TableDataInfo selectConstructionList(Construction construction) { List list = constructionMapper.selectConstructionList(construction); - long total = PageHelper.getLocalPage().getTotal(); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); return TableDataInfo.build(list, total); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/ContractServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/ContractServiceImpl.java index 99938ec6..22e16989 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/ContractServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/ContractServiceImpl.java @@ -37,7 +37,8 @@ public class ContractServiceImpl implements IContractService { for (Contract c : list) { c.setPaidAmount(sumPaymentAmountByContractId(c.getContractId())); } - long total = PageHelper.getLocalPage().getTotal(); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); return TableDataInfo.build(list, total); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/MaterialServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/MaterialServiceImpl.java index 55f53f91..05a87ac8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/MaterialServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/MaterialServiceImpl.java @@ -3,12 +3,8 @@ package com.ruoyi.system.service.impl.engineering; import com.github.pagehelper.PageHelper; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.system.domain.engineering.Material; -import com.ruoyi.system.domain.engineering.MaterialIn; -import com.ruoyi.system.domain.engineering.MaterialOut; -import com.ruoyi.system.mapper.engineering.MaterialInMapper; -import com.ruoyi.system.mapper.engineering.MaterialMapper; -import com.ruoyi.system.mapper.engineering.MaterialOutMapper; +import com.ruoyi.system.domain.engineering.*; +import com.ruoyi.system.mapper.engineering.*; import com.ruoyi.system.service.engineering.IMaterialService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,10 +25,32 @@ public class MaterialServiceImpl implements IMaterialService { @Autowired private MaterialOutMapper materialOutMapper; + @Autowired + private MaterialReturnMapper materialReturnMapper; + + @Autowired + private MaterialPickMapper materialPickMapper; + + @Autowired + private MaterialReturnBackMapper materialReturnBackMapper; + + @Autowired + private MaterialTransferMapper materialTransferMapper; + + @Autowired + private MaterialInventoryMapper materialInventoryMapper; + + @Autowired + private MaterialInventoryDetailMapper materialInventoryDetailMapper; + + @Autowired + private MaterialScrapMapper materialScrapMapper; + @Override public TableDataInfo selectMaterialList(Material material) { List list = materialMapper.selectMaterialList(material); - long total = PageHelper.getLocalPage().getTotal(); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); return TableDataInfo.build(list, total); } @@ -122,7 +140,8 @@ public class MaterialServiceImpl implements IMaterialService { @Override public TableDataInfo selectMaterialInList(MaterialIn materialIn) { List list = materialInMapper.selectMaterialInList(materialIn); - long total = PageHelper.getLocalPage().getTotal(); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); return TableDataInfo.build(list, total); } @@ -182,7 +201,8 @@ public class MaterialServiceImpl implements IMaterialService { @Override public TableDataInfo selectMaterialOutList(MaterialOut materialOut) { List list = materialOutMapper.selectMaterialOutList(materialOut); - long total = PageHelper.getLocalPage().getTotal(); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); return TableDataInfo.build(list, total); } @@ -190,4 +210,486 @@ public class MaterialServiceImpl implements IMaterialService { public MaterialOut selectMaterialOutById(Long outId) { return materialOutMapper.selectMaterialOutById(outId); } + + @Override + public List selectWarningMaterials() { + List allMaterials = materialMapper.selectMaterialList(new Material()); + List warningMaterials = new java.util.ArrayList<>(); + + for (Material material : allMaterials) { + String status = calculateWarningStatus(material); + if (!"normal".equals(status)) { + material.setWarningStatus(status); + warningMaterials.add(material); + } + } + + return warningMaterials; + } + + @Override + public String calculateWarningStatus(Material material) { + BigDecimal stock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal minStock = material.getMinStock() != null ? material.getMinStock() : BigDecimal.ZERO; + BigDecimal safetyStock = material.getSafetyStock() != null ? material.getSafetyStock() : minStock; + + if (safetyStock.compareTo(BigDecimal.ZERO) <= 0) { + return "normal"; + } + + if (stock.compareTo(BigDecimal.ZERO) <= 0) { + return "urgent"; + } + + if (stock.compareTo(safetyStock) < 0) { + BigDecimal ratio = stock.divide(safetyStock, 2, java.math.RoundingMode.HALF_UP); + if (ratio.compareTo(new BigDecimal("0.3")) < 0) { + return "urgent"; + } else { + return "warning"; + } + } + + return "normal"; + } + + @Override + @Transactional + public int insertMaterialReturn(MaterialReturn materialReturn) { + if (StringUtils.isBlank(materialReturn.getStatus())) { + materialReturn.setStatus("pending"); + } + return materialReturnMapper.insertMaterialReturn(materialReturn); + } + + @Override + @Transactional + public int updateMaterialReturn(MaterialReturn materialReturn) { + return materialReturnMapper.updateMaterialReturn(materialReturn); + } + + @Override + @Transactional + public int approveMaterialReturn(Long returnId) { + MaterialReturn materialReturn = materialReturnMapper.selectMaterialReturnById(returnId); + if (materialReturn == null) { + throw new RuntimeException("退货记录不存在"); + } + + materialReturnMapper.updateMaterialReturnStatus(returnId, "approved"); + + Material material = materialMapper.selectMaterialById(materialReturn.getMaterialId()); + if (material != null) { + BigDecimal currentStock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal newStock = currentStock.subtract(materialReturn.getQuantity() != null ? materialReturn.getQuantity() : BigDecimal.ZERO); + if (newStock.compareTo(BigDecimal.ZERO) < 0) { + newStock = BigDecimal.ZERO; + } + materialMapper.updateMaterialStock(materialReturn.getMaterialId(), newStock); + } + return 1; + } + + @Override + @Transactional + public int deleteMaterialReturnById(Long returnId) { + return materialReturnMapper.deleteMaterialReturnById(returnId); + } + + @Override + public TableDataInfo selectMaterialReturnList(MaterialReturn materialReturn) { + List list = materialReturnMapper.selectMaterialReturnList(materialReturn); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); + return TableDataInfo.build(list, total); + } + + @Override + public MaterialReturn selectMaterialReturnById(Long returnId) { + return materialReturnMapper.selectMaterialReturnById(returnId); + } + + @Override + @Transactional + public int insertMaterialPick(MaterialPick materialPick) { + if (StringUtils.isBlank(materialPick.getStatus())) { + materialPick.setStatus("pending"); + } + return materialPickMapper.insertMaterialPick(materialPick); + } + + @Override + @Transactional + public int updateMaterialPick(MaterialPick materialPick) { + return materialPickMapper.updateMaterialPick(materialPick); + } + + @Override + @Transactional + public int approveMaterialPick(Long pickId) { + MaterialPick materialPick = materialPickMapper.selectMaterialPickById(pickId); + if (materialPick == null) { + throw new RuntimeException("领料记录不存在"); + } + + Material material = materialMapper.selectMaterialById(materialPick.getMaterialId()); + if (material == null) { + throw new RuntimeException("物料不存在"); + } + + BigDecimal currentStock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal pickQuantity = materialPick.getQuantity() != null ? materialPick.getQuantity() : BigDecimal.ZERO; + + if (currentStock.compareTo(pickQuantity) < 0) { + throw new RuntimeException("库存不足"); + } + + materialPickMapper.updateMaterialPickStatus(pickId, "approved"); + return 1; + } + + @Override + @Transactional + public int issueMaterialPick(Long pickId) { + MaterialPick materialPick = materialPickMapper.selectMaterialPickById(pickId); + if (materialPick == null) { + throw new RuntimeException("领料记录不存在"); + } + + if (!"approved".equals(materialPick.getStatus())) { + throw new RuntimeException("领料记录未通过审核"); + } + + Material material = materialMapper.selectMaterialById(materialPick.getMaterialId()); + if (material != null) { + BigDecimal currentStock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal newStock = currentStock.subtract(materialPick.getQuantity() != null ? materialPick.getQuantity() : BigDecimal.ZERO); + materialMapper.updateMaterialStock(materialPick.getMaterialId(), newStock); + } + + materialPickMapper.updateMaterialPickStatus(pickId, "issued"); + return 1; + } + + @Override + @Transactional + public int deleteMaterialPickById(Long pickId) { + return materialPickMapper.deleteMaterialPickById(pickId); + } + + @Override + public TableDataInfo selectMaterialPickList(MaterialPick materialPick) { + List list = materialPickMapper.selectMaterialPickList(materialPick); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); + return TableDataInfo.build(list, total); + } + + @Override + public MaterialPick selectMaterialPickById(Long pickId) { + return materialPickMapper.selectMaterialPickById(pickId); + } + + @Override + @Transactional + public int insertMaterialReturnBack(MaterialReturnBack materialReturnBack) { + if (StringUtils.isBlank(materialReturnBack.getStatus())) { + materialReturnBack.setStatus("pending"); + } + return materialReturnBackMapper.insertMaterialReturnBack(materialReturnBack); + } + + @Override + @Transactional + public int updateMaterialReturnBack(MaterialReturnBack materialReturnBack) { + return materialReturnBackMapper.updateMaterialReturnBack(materialReturnBack); + } + + @Override + @Transactional + public int approveMaterialReturnBack(Long returnBackId) { + MaterialReturnBack materialReturnBack = materialReturnBackMapper.selectMaterialReturnBackById(returnBackId); + if (materialReturnBack == null) { + throw new RuntimeException("还料记录不存在"); + } + + materialReturnBackMapper.updateMaterialReturnBackStatus(returnBackId, "approved"); + + Material material = materialMapper.selectMaterialById(materialReturnBack.getMaterialId()); + if (material != null) { + BigDecimal currentStock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal newStock = currentStock.add(materialReturnBack.getQuantity() != null ? materialReturnBack.getQuantity() : BigDecimal.ZERO); + materialMapper.updateMaterialStock(materialReturnBack.getMaterialId(), newStock); + } + return 1; + } + + @Override + @Transactional + public int deleteMaterialReturnBackById(Long returnBackId) { + return materialReturnBackMapper.deleteMaterialReturnBackById(returnBackId); + } + + @Override + public TableDataInfo selectMaterialReturnBackList(MaterialReturnBack materialReturnBack) { + List list = materialReturnBackMapper.selectMaterialReturnBackList(materialReturnBack); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); + return TableDataInfo.build(list, total); + } + + @Override + public MaterialReturnBack selectMaterialReturnBackById(Long returnBackId) { + return materialReturnBackMapper.selectMaterialReturnBackById(returnBackId); + } + + @Override + @Transactional + public int insertMaterialTransfer(MaterialTransfer materialTransfer) { + if (StringUtils.isBlank(materialTransfer.getStatus())) { + materialTransfer.setStatus("pending"); + } + return materialTransferMapper.insertMaterialTransfer(materialTransfer); + } + + @Override + @Transactional + public int updateMaterialTransfer(MaterialTransfer materialTransfer) { + return materialTransferMapper.updateMaterialTransfer(materialTransfer); + } + + @Override + @Transactional + public int approveMaterialTransfer(Long transferId) { + MaterialTransfer materialTransfer = materialTransferMapper.selectMaterialTransferById(transferId); + if (materialTransfer == null) { + throw new RuntimeException("调拨记录不存在"); + } + + materialTransferMapper.updateMaterialTransferStatus(transferId, "approved"); + + if ("out".equals(materialTransfer.getTransferType())) { + Material material = materialMapper.selectMaterialById(materialTransfer.getMaterialId()); + if (material != null) { + BigDecimal currentStock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal newStock = currentStock.subtract(materialTransfer.getQuantity() != null ? materialTransfer.getQuantity() : BigDecimal.ZERO); + materialMapper.updateMaterialStock(materialTransfer.getMaterialId(), newStock); + } + } else if ("in".equals(materialTransfer.getTransferType())) { + Material material = materialMapper.selectMaterialById(materialTransfer.getMaterialId()); + if (material != null) { + BigDecimal currentStock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal newStock = currentStock.add(materialTransfer.getQuantity() != null ? materialTransfer.getQuantity() : BigDecimal.ZERO); + materialMapper.updateMaterialStock(materialTransfer.getMaterialId(), newStock); + } + } + return 1; + } + + @Override + @Transactional + public int deleteMaterialTransferById(Long transferId) { + return materialTransferMapper.deleteMaterialTransferById(transferId); + } + + @Override + public TableDataInfo selectMaterialTransferList(MaterialTransfer materialTransfer) { + List list = materialTransferMapper.selectMaterialTransferList(materialTransfer); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); + return TableDataInfo.build(list, total); + } + + @Override + public MaterialTransfer selectMaterialTransferById(Long transferId) { + return materialTransferMapper.selectMaterialTransferById(transferId); + } + + @Override + @Transactional + public int insertMaterialInventory(MaterialInventory materialInventory) { + if (StringUtils.isBlank(materialInventory.getStatus())) { + materialInventory.setStatus("pending"); + } + return materialInventoryMapper.insertMaterialInventory(materialInventory); + } + + @Override + @Transactional + public int updateMaterialInventory(MaterialInventory materialInventory) { + return materialInventoryMapper.updateMaterialInventory(materialInventory); + } + + @Override + @Transactional + public int completeMaterialInventory(Long inventoryId) { + MaterialInventory inventory = materialInventoryMapper.selectMaterialInventoryById(inventoryId); + if (inventory == null) { + throw new RuntimeException("盘点记录不存在"); + } + + materialInventoryMapper.updateMaterialInventoryStatus(inventoryId, "completed"); + return 1; + } + + @Override + @Transactional + public int adjustMaterialInventory(Long inventoryId) { + MaterialInventory inventory = materialInventoryMapper.selectMaterialInventoryById(inventoryId); + if (inventory == null) { + throw new RuntimeException("盘点记录不存在"); + } + + List details = materialInventoryDetailMapper.selectMaterialInventoryDetailList(new MaterialInventoryDetail()); + for (MaterialInventoryDetail detail : details) { + if ("pending".equals(detail.getStatus()) && detail.getDiffQuantity() != null && detail.getDiffQuantity().compareTo(BigDecimal.ZERO) != 0) { + Material material = materialMapper.selectMaterialById(detail.getMaterialId()); + if (material != null) { + BigDecimal currentStock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal newStock = currentStock.add(detail.getDiffQuantity()); + materialMapper.updateMaterialStock(detail.getMaterialId(), newStock); + materialInventoryDetailMapper.updateMaterialInventoryDetailStatus(detail.getDetailId(), "adjusted"); + } + } + } + + materialInventoryMapper.updateMaterialInventoryStatus(inventoryId, "adjusted"); + return 1; + } + + @Override + @Transactional + public int deleteMaterialInventoryById(Long inventoryId) { + materialInventoryDetailMapper.deleteMaterialInventoryDetailByInventoryId(inventoryId); + return materialInventoryMapper.deleteMaterialInventoryById(inventoryId); + } + + @Override + public TableDataInfo selectMaterialInventoryList(MaterialInventory materialInventory) { + List list = materialInventoryMapper.selectMaterialInventoryList(materialInventory); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); + return TableDataInfo.build(list, total); + } + + @Override + public MaterialInventory selectMaterialInventoryById(Long inventoryId) { + return materialInventoryMapper.selectMaterialInventoryById(inventoryId); + } + + @Override + @Transactional + public int insertMaterialInventoryDetail(MaterialInventoryDetail detail) { + if (StringUtils.isBlank(detail.getStatus())) { + detail.setStatus("pending"); + } + if (detail.getDiffQuantity() == null) { + BigDecimal systemStock = detail.getSystemStock() != null ? detail.getSystemStock() : BigDecimal.ZERO; + BigDecimal actualStock = detail.getActualStock() != null ? detail.getActualStock() : BigDecimal.ZERO; + detail.setDiffQuantity(actualStock.subtract(systemStock)); + } + return materialInventoryDetailMapper.insertMaterialInventoryDetail(detail); + } + + @Override + @Transactional + public int updateMaterialInventoryDetail(MaterialInventoryDetail detail) { + if (detail.getDiffQuantity() == null) { + BigDecimal systemStock = detail.getSystemStock() != null ? detail.getSystemStock() : BigDecimal.ZERO; + BigDecimal actualStock = detail.getActualStock() != null ? detail.getActualStock() : BigDecimal.ZERO; + detail.setDiffQuantity(actualStock.subtract(systemStock)); + } + return materialInventoryDetailMapper.updateMaterialInventoryDetail(detail); + } + + @Override + @Transactional + public int adjustMaterialInventoryDetail(Long detailId) { + MaterialInventoryDetail detail = materialInventoryDetailMapper.selectMaterialInventoryDetailById(detailId); + if (detail == null) { + throw new RuntimeException("盘点明细不存在"); + } + + if (detail.getDiffQuantity() != null && detail.getDiffQuantity().compareTo(BigDecimal.ZERO) != 0) { + Material material = materialMapper.selectMaterialById(detail.getMaterialId()); + if (material != null) { + BigDecimal currentStock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal newStock = currentStock.add(detail.getDiffQuantity()); + materialMapper.updateMaterialStock(detail.getMaterialId(), newStock); + } + } + + materialInventoryDetailMapper.updateMaterialInventoryDetailStatus(detailId, "adjusted"); + return 1; + } + + @Override + public List selectMaterialInventoryDetailList(Long inventoryId) { + MaterialInventoryDetail query = new MaterialInventoryDetail(); + query.setInventoryId(inventoryId); + return materialInventoryDetailMapper.selectMaterialInventoryDetailList(query); + } + + @Override + @Transactional + public int insertMaterialScrap(MaterialScrap materialScrap) { + if (StringUtils.isBlank(materialScrap.getStatus())) { + materialScrap.setStatus("pending"); + } + return materialScrapMapper.insertMaterialScrap(materialScrap); + } + + @Override + @Transactional + public int updateMaterialScrap(MaterialScrap materialScrap) { + return materialScrapMapper.updateMaterialScrap(materialScrap); + } + + @Override + @Transactional + public int approveMaterialScrap(Long scrapId) { + MaterialScrap materialScrap = materialScrapMapper.selectMaterialScrapById(scrapId); + if (materialScrap == null) { + throw new RuntimeException("报损报溢记录不存在"); + } + + materialScrapMapper.updateMaterialScrapStatus(scrapId, "approved"); + + Material material = materialMapper.selectMaterialById(materialScrap.getMaterialId()); + if (material != null) { + BigDecimal currentStock = material.getStock() != null ? material.getStock() : BigDecimal.ZERO; + BigDecimal quantity = materialScrap.getQuantity() != null ? materialScrap.getQuantity() : BigDecimal.ZERO; + + if ("scrap".equals(materialScrap.getScrapType())) { + BigDecimal newStock = currentStock.subtract(quantity); + if (newStock.compareTo(BigDecimal.ZERO) < 0) { + newStock = BigDecimal.ZERO; + } + materialMapper.updateMaterialStock(materialScrap.getMaterialId(), newStock); + } else if ("overflow".equals(materialScrap.getScrapType())) { + BigDecimal newStock = currentStock.add(quantity); + materialMapper.updateMaterialStock(materialScrap.getMaterialId(), newStock); + } + } + return 1; + } + + @Override + @Transactional + public int deleteMaterialScrapById(Long scrapId) { + return materialScrapMapper.deleteMaterialScrapById(scrapId); + } + + @Override + public TableDataInfo selectMaterialScrapList(MaterialScrap materialScrap) { + List list = materialScrapMapper.selectMaterialScrapList(materialScrap); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); + return TableDataInfo.build(list, total); + } + + @Override + public MaterialScrap selectMaterialScrapById(Long scrapId) { + return materialScrapMapper.selectMaterialScrapById(scrapId); + } } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/PaymentServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/PaymentServiceImpl.java index 5c2c3caa..77aea6f3 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/PaymentServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/PaymentServiceImpl.java @@ -3,9 +3,11 @@ package com.ruoyi.system.service.impl.engineering; import com.github.pagehelper.PageHelper; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.engineering.Construction; import com.ruoyi.system.domain.engineering.Contract; import com.ruoyi.system.domain.engineering.Payment; import com.ruoyi.system.domain.engineering.SupplierPaymentRecord; +import com.ruoyi.system.mapper.engineering.ConstructionMapper; import com.ruoyi.system.mapper.engineering.ContractMapper; import com.ruoyi.system.mapper.engineering.PaymentMapper; import com.ruoyi.system.mapper.engineering.SupplierPaymentRecordMapper; @@ -30,10 +32,14 @@ public class PaymentServiceImpl implements IPaymentService { @Autowired private SupplierPaymentRecordMapper supplierPaymentRecordMapper; + @Autowired + private ConstructionMapper constructionMapper; + @Override public TableDataInfo selectPaymentList(Payment payment) { List list = paymentMapper.selectPaymentList(payment); - long total = PageHelper.getLocalPage().getTotal(); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); return TableDataInfo.build(list, total); } @@ -59,9 +65,69 @@ public class PaymentServiceImpl implements IPaymentService { throw new RuntimeException("付款金额超过合同未付金额"); } + if ("progress".equals(payment.getPaymentType())) { + validateProgressPayment(payment); + } else if ("quality".equals(payment.getPaymentType())) { + validateQualityPayment(payment, contract); + } + return paymentMapper.insertPayment(payment); } + private void validateProgressPayment(Payment payment) { + if (payment.getConstructionId() == null) { + throw new RuntimeException("进度款必须关联施工节点"); + } + + Construction construction = constructionMapper.selectConstructionById(payment.getConstructionId()); + if (construction == null) { + throw new RuntimeException("施工节点不存在"); + } + + if (!"approved".equals(construction.getAcceptanceStatus())) { + throw new RuntimeException("施工节点未通过验收,无法申请进度款"); + } + } + + private void validateQualityPayment(Payment payment, Contract contract) { + if (contract.getEndDate() == null) { + throw new RuntimeException("合同未设置结束日期,无法申请质保金"); + } + + Date endDate = contract.getEndDate(); + Date now = new Date(); + if (now.before(endDate)) { + throw new RuntimeException("合同尚未到期,无法申请质保金"); + } + + BigDecimal qualityAmount = contract.getQualityAmount(); + if (qualityAmount == null || qualityAmount.compareTo(BigDecimal.ZERO) <= 0) { + throw new RuntimeException("合同未设置质保金金额"); + } + + BigDecimal totalQualityPaid = sumQualityPaymentByContractId(contract.getContractId()); + BigDecimal remainingQuality = qualityAmount.subtract(totalQualityPaid); + + if (payment.getAmount().compareTo(remainingQuality) > 0) { + throw new RuntimeException("质保金申请金额超过剩余可申请金额"); + } + } + + private BigDecimal sumQualityPaymentByContractId(Long contractId) { + Payment query = new Payment(); + query.setContractId(contractId); + query.setPaymentType("quality"); + List payments = paymentMapper.selectPaymentList(query); + + BigDecimal sum = BigDecimal.ZERO; + for (Payment p : payments) { + if ("paid".equals(p.getStatus())) { + sum = sum.add(p.getAmount() != null ? p.getAmount() : BigDecimal.ZERO); + } + } + return sum; + } + @Override @Transactional public int updatePayment(Payment payment) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/SupplierServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/SupplierServiceImpl.java index 35e3e9ce..217c1039 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/SupplierServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/engineering/SupplierServiceImpl.java @@ -43,7 +43,8 @@ public class SupplierServiceImpl implements ISupplierService { s.setTotalContractAmount(sumContractAmount(s.getSupplierId())); s.setTotalPaymentAmount(sumPaymentAmount(s.getSupplierId())); } - long total = PageHelper.getLocalPage().getTotal(); + com.github.pagehelper.Page page = PageHelper.getLocalPage(); + long total = page != null ? page.getTotal() : list.size(); return TableDataInfo.build(list, total); } diff --git a/ruoyi-system/src/main/resources/mapper/engineering/MaterialInventoryDetailMapper.xml b/ruoyi-system/src/main/resources/mapper/engineering/MaterialInventoryDetailMapper.xml new file mode 100644 index 00000000..89f8002b --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/engineering/MaterialInventoryDetailMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + SELECT detail_id, inventory_id, material_id, system_quantity, actual_quantity, + difference, status, remark, create_by, create_time, update_by, update_time + FROM engineering_material_inventory_detail + + + + + + + + INSERT INTO engineering_material_inventory_detail ( + inventory_id, material_id, system_quantity, actual_quantity, difference, + status, remark, create_by, create_time, update_by, update_time + ) VALUES ( + #{inventoryId}, #{materialId}, #{systemQuantity}, #{actualQuantity}, #{difference}, + #{status}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime} + ) + + + + UPDATE engineering_material_inventory_detail + SET inventory_id = #{inventoryId}, + material_id = #{materialId}, + system_quantity = #{systemQuantity}, + actual_quantity = #{actualQuantity}, + difference = #{difference}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = #{updateTime} + WHERE detail_id = #{detailId} + + + + UPDATE engineering_material_inventory_detail + SET status = #{status} + WHERE detail_id = #{detailId} + + + + DELETE FROM engineering_material_inventory_detail WHERE detail_id = #{detailId} + + + + DELETE FROM engineering_material_inventory_detail WHERE inventory_id = #{inventoryId} + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/engineering/MaterialInventoryMapper.xml b/ruoyi-system/src/main/resources/mapper/engineering/MaterialInventoryMapper.xml new file mode 100644 index 00000000..903322a5 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/engineering/MaterialInventoryMapper.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + SELECT inventory_id, inventory_no, inventory_date, warehouse, + status, remark, create_by, create_time, update_by, update_time + FROM engineering_material_inventory + + + + + + + + INSERT INTO engineering_material_inventory ( + inventory_no, inventory_date, warehouse, status, remark, + create_by, create_time, update_by, update_time + ) VALUES ( + #{inventoryNo}, #{inventoryDate}, #{warehouse}, #{status}, #{remark}, + #{createBy}, #{createTime}, #{updateBy}, #{updateTime} + ) + + + + UPDATE engineering_material_inventory + SET inventory_no = #{inventoryNo}, + inventory_date = #{inventoryDate}, + warehouse = #{warehouse}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = #{updateTime} + WHERE inventory_id = #{inventoryId} + + + + UPDATE engineering_material_inventory + SET status = #{status} + WHERE inventory_id = #{inventoryId} + + + + DELETE FROM engineering_material_inventory WHERE inventory_id = #{inventoryId} + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/engineering/MaterialPickMapper.xml b/ruoyi-system/src/main/resources/mapper/engineering/MaterialPickMapper.xml new file mode 100644 index 00000000..aaaeee72 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/engineering/MaterialPickMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + SELECT pick_id, pick_no, material_id, quantity, pick_date, department, + purpose, picker, status, remark, create_by, create_time, update_by, update_time + FROM engineering_material_pick + + + + + + + + INSERT INTO engineering_material_pick ( + pick_no, material_id, quantity, pick_date, department, + purpose, picker, status, remark, create_by, create_time, update_by, update_time + ) VALUES ( + #{pickNo}, #{materialId}, #{quantity}, #{pickDate}, #{department}, + #{purpose}, #{picker}, #{status}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime} + ) + + + + UPDATE engineering_material_pick + SET pick_no = #{pickNo}, + material_id = #{materialId}, + quantity = #{quantity}, + pick_date = #{pickDate}, + department = #{department}, + purpose = #{purpose}, + picker = #{picker}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = #{updateTime} + WHERE pick_id = #{pickId} + + + + UPDATE engineering_material_pick + SET status = #{status} + WHERE pick_id = #{pickId} + + + + DELETE FROM engineering_material_pick WHERE pick_id = #{pickId} + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/engineering/MaterialReturnBackMapper.xml b/ruoyi-system/src/main/resources/mapper/engineering/MaterialReturnBackMapper.xml new file mode 100644 index 00000000..77217424 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/engineering/MaterialReturnBackMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + SELECT return_back_id, return_back_no, material_id, quantity, return_back_date, original_pick_id, + status, remark, create_by, create_time, update_by, update_time + FROM engineering_material_return_back + + + + + + + + INSERT INTO engineering_material_return_back ( + return_back_no, material_id, quantity, return_back_date, original_pick_id, + status, remark, create_by, create_time, update_by, update_time + ) VALUES ( + #{returnBackNo}, #{materialId}, #{quantity}, #{returnBackDate}, #{originalPickId}, + #{status}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime} + ) + + + + UPDATE engineering_material_return_back + SET return_back_no = #{returnBackNo}, + material_id = #{materialId}, + quantity = #{quantity}, + return_back_date = #{returnBackDate}, + original_pick_id = #{originalPickId}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = #{updateTime} + WHERE return_back_id = #{returnBackId} + + + + UPDATE engineering_material_return_back + SET status = #{status} + WHERE return_back_id = #{returnBackId} + + + + DELETE FROM engineering_material_return_back WHERE return_back_id = #{returnBackId} + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/engineering/MaterialReturnMapper.xml b/ruoyi-system/src/main/resources/mapper/engineering/MaterialReturnMapper.xml new file mode 100644 index 00000000..b2ecda0c --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/engineering/MaterialReturnMapper.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + SELECT return_id, return_no, material_id, quantity, return_date, supplier_id, + return_reason, status, remark, create_by, create_time, update_by, update_time + FROM engineering_material_return + + + + + + + + INSERT INTO engineering_material_return ( + return_no, material_id, quantity, return_date, supplier_id, + return_reason, status, remark, create_by, create_time, update_by, update_time + ) VALUES ( + #{returnNo}, #{materialId}, #{quantity}, #{returnDate}, #{supplierId}, + #{returnReason}, #{status}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime} + ) + + + + UPDATE engineering_material_return + SET return_no = #{returnNo}, + material_id = #{materialId}, + quantity = #{quantity}, + return_date = #{returnDate}, + supplier_id = #{supplierId}, + return_reason = #{returnReason}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = #{updateTime} + WHERE return_id = #{returnId} + + + + UPDATE engineering_material_return + SET status = #{status} + WHERE return_id = #{returnId} + + + + DELETE FROM engineering_material_return WHERE return_id = #{returnId} + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/engineering/MaterialScrapMapper.xml b/ruoyi-system/src/main/resources/mapper/engineering/MaterialScrapMapper.xml new file mode 100644 index 00000000..6f96a46b --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/engineering/MaterialScrapMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + SELECT scrap_id, scrap_no, material_id, quantity, scrap_date, scrap_type, + reason, handle_result, status, remark, create_by, create_time, update_by, update_time + FROM engineering_material_scrap + + + + + + + + INSERT INTO engineering_material_scrap ( + scrap_no, material_id, quantity, scrap_date, scrap_type, + reason, handle_result, status, remark, create_by, create_time, update_by, update_time + ) VALUES ( + #{scrapNo}, #{materialId}, #{quantity}, #{scrapDate}, #{scrapType}, + #{reason}, #{handleResult}, #{status}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime} + ) + + + + UPDATE engineering_material_scrap + SET scrap_no = #{scrapNo}, + material_id = #{materialId}, + quantity = #{quantity}, + scrap_date = #{scrapDate}, + scrap_type = #{scrapType}, + reason = #{reason}, + handle_result = #{handleResult}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = #{updateTime} + WHERE scrap_id = #{scrapId} + + + + UPDATE engineering_material_scrap + SET status = #{status} + WHERE scrap_id = #{scrapId} + + + + DELETE FROM engineering_material_scrap WHERE scrap_id = #{scrapId} + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/engineering/MaterialTransferMapper.xml b/ruoyi-system/src/main/resources/mapper/engineering/MaterialTransferMapper.xml new file mode 100644 index 00000000..82fa2aec --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/engineering/MaterialTransferMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + SELECT transfer_id, transfer_no, material_id, quantity, transfer_date, from_project, + to_project, transfer_type, status, remark, create_by, create_time, update_by, update_time + FROM engineering_material_transfer + + + + + + + + INSERT INTO engineering_material_transfer ( + transfer_no, material_id, quantity, transfer_date, from_project, + to_project, transfer_type, status, remark, create_by, create_time, update_by, update_time + ) VALUES ( + #{transferNo}, #{materialId}, #{quantity}, #{transferDate}, #{fromProject}, + #{toProject}, #{transferType}, #{status}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime} + ) + + + + UPDATE engineering_material_transfer + SET transfer_no = #{transferNo}, + material_id = #{materialId}, + quantity = #{quantity}, + transfer_date = #{transferDate}, + from_project = #{fromProject}, + to_project = #{toProject}, + transfer_type = #{transferType}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = #{updateTime} + WHERE transfer_id = #{transferId} + + + + UPDATE engineering_material_transfer + SET status = #{status} + WHERE transfer_id = #{transferId} + + + + DELETE FROM engineering_material_transfer WHERE transfer_id = #{transferId} + + \ No newline at end of file diff --git a/ruoyi-ui/src/api/engineering/material.js b/ruoyi-ui/src/api/engineering/material.js index 6348e7b8..5ee669ca 100644 --- a/ruoyi-ui/src/api/engineering/material.js +++ b/ruoyi-ui/src/api/engineering/material.js @@ -133,4 +133,318 @@ export function delMaterialOut(outId) { url: '/system/engineering/material/out/' + outId, method: 'delete' }) +} + +export function listMaterialReturn(query) { + return request({ + url: '/system/engineering/material/return/list', + method: 'get', + params: query + }) +} + +export function getMaterialReturn(returnId) { + return request({ + url: '/system/engineering/material/return/' + returnId, + method: 'get' + }) +} + +export function addMaterialReturn(data) { + return request({ + url: '/system/engineering/material/return', + method: 'post', + data: data + }) +} + +export function updateMaterialReturn(data) { + return request({ + url: '/system/engineering/material/return', + method: 'put', + data: data + }) +} + +export function approveMaterialReturn(returnId) { + return request({ + url: '/system/engineering/material/return/approve/' + returnId, + method: 'put' + }) +} + +export function delMaterialReturn(returnId) { + return request({ + url: '/system/engineering/material/return/' + returnId, + method: 'delete' + }) +} + +export function listMaterialPick(query) { + return request({ + url: '/system/engineering/material/pick/list', + method: 'get', + params: query + }) +} + +export function getMaterialPick(pickId) { + return request({ + url: '/system/engineering/material/pick/' + pickId, + method: 'get' + }) +} + +export function addMaterialPick(data) { + return request({ + url: '/system/engineering/material/pick', + method: 'post', + data: data + }) +} + +export function updateMaterialPick(data) { + return request({ + url: '/system/engineering/material/pick', + method: 'put', + data: data + }) +} + +export function approveMaterialPick(pickId) { + return request({ + url: '/system/engineering/material/pick/approve/' + pickId, + method: 'put' + }) +} + +export function issueMaterialPick(pickId) { + return request({ + url: '/system/engineering/material/pick/issue/' + pickId, + method: 'put' + }) +} + +export function delMaterialPick(pickId) { + return request({ + url: '/system/engineering/material/pick/' + pickId, + method: 'delete' + }) +} + +export function listMaterialReturnBack(query) { + return request({ + url: '/system/engineering/material/returnBack/list', + method: 'get', + params: query + }) +} + +export function getMaterialReturnBack(returnBackId) { + return request({ + url: '/system/engineering/material/returnBack/' + returnBackId, + method: 'get' + }) +} + +export function addMaterialReturnBack(data) { + return request({ + url: '/system/engineering/material/returnBack', + method: 'post', + data: data + }) +} + +export function updateMaterialReturnBack(data) { + return request({ + url: '/system/engineering/material/returnBack', + method: 'put', + data: data + }) +} + +export function approveMaterialReturnBack(returnBackId) { + return request({ + url: '/system/engineering/material/returnBack/approve/' + returnBackId, + method: 'put' + }) +} + +export function delMaterialReturnBack(returnBackId) { + return request({ + url: '/system/engineering/material/returnBack/' + returnBackId, + method: 'delete' + }) +} + +export function listMaterialTransfer(query) { + return request({ + url: '/system/engineering/material/transfer/list', + method: 'get', + params: query + }) +} + +export function getMaterialTransfer(transferId) { + return request({ + url: '/system/engineering/material/transfer/' + transferId, + method: 'get' + }) +} + +export function addMaterialTransfer(data) { + return request({ + url: '/system/engineering/material/transfer', + method: 'post', + data: data + }) +} + +export function updateMaterialTransfer(data) { + return request({ + url: '/system/engineering/material/transfer', + method: 'put', + data: data + }) +} + +export function approveMaterialTransfer(transferId) { + return request({ + url: '/system/engineering/material/transfer/approve/' + transferId, + method: 'put' + }) +} + +export function delMaterialTransfer(transferId) { + return request({ + url: '/system/engineering/material/transfer/' + transferId, + method: 'delete' + }) +} + +export function listMaterialInventory(query) { + return request({ + url: '/system/engineering/material/inventory/list', + method: 'get', + params: query + }) +} + +export function getMaterialInventory(inventoryId) { + return request({ + url: '/system/engineering/material/inventory/' + inventoryId, + method: 'get' + }) +} + +export function addMaterialInventory(data) { + return request({ + url: '/system/engineering/material/inventory', + method: 'post', + data: data + }) +} + +export function updateMaterialInventory(data) { + return request({ + url: '/system/engineering/material/inventory', + method: 'put', + data: data + }) +} + +export function completeMaterialInventory(inventoryId) { + return request({ + url: '/system/engineering/material/inventory/complete/' + inventoryId, + method: 'put' + }) +} + +export function adjustMaterialInventory(inventoryId) { + return request({ + url: '/system/engineering/material/inventory/adjust/' + inventoryId, + method: 'put' + }) +} + +export function delMaterialInventory(inventoryId) { + return request({ + url: '/system/engineering/material/inventory/' + inventoryId, + method: 'delete' + }) +} + +export function getMaterialInventoryDetail(inventoryId) { + return request({ + url: '/system/engineering/material/inventory/detail/' + inventoryId, + method: 'get' + }) +} + +export function addMaterialInventoryDetail(data) { + return request({ + url: '/system/engineering/material/inventory/detail', + method: 'post', + data: data + }) +} + +export function updateMaterialInventoryDetail(data) { + return request({ + url: '/system/engineering/material/inventory/detail', + method: 'put', + data: data + }) +} + +export function adjustMaterialInventoryDetail(detailId) { + return request({ + url: '/system/engineering/material/inventory/detail/adjust/' + detailId, + method: 'put' + }) +} + +export function listMaterialScrap(query) { + return request({ + url: '/system/engineering/material/scrap/list', + method: 'get', + params: query + }) +} + +export function getMaterialScrap(scrapId) { + return request({ + url: '/system/engineering/material/scrap/' + scrapId, + method: 'get' + }) +} + +export function addMaterialScrap(data) { + return request({ + url: '/system/engineering/material/scrap', + method: 'post', + data: data + }) +} + +export function updateMaterialScrap(data) { + return request({ + url: '/system/engineering/material/scrap', + method: 'put', + data: data + }) +} + +export function approveMaterialScrap(scrapId) { + return request({ + url: '/system/engineering/material/scrap/approve/' + scrapId, + method: 'put' + }) +} + +export function delMaterialScrap(scrapId) { + return request({ + url: '/system/engineering/material/scrap/' + scrapId, + method: 'delete' + }) } \ No newline at end of file diff --git a/ruoyi-ui/src/components/ImagePreview/index.vue b/ruoyi-ui/src/components/ImagePreview/index.vue index 8b4738b6..ed2941aa 100644 --- a/ruoyi-ui/src/components/ImagePreview/index.vue +++ b/ruoyi-ui/src/components/ImagePreview/index.vue @@ -1,14 +1,21 @@ + + \ No newline at end of file diff --git a/ruoyi-ui/src/views/engineering/material/pick.vue b/ruoyi-ui/src/views/engineering/material/pick.vue new file mode 100644 index 00000000..19091c74 --- /dev/null +++ b/ruoyi-ui/src/views/engineering/material/pick.vue @@ -0,0 +1,269 @@ + + + + + \ No newline at end of file diff --git a/ruoyi-ui/src/views/engineering/material/return.vue b/ruoyi-ui/src/views/engineering/material/return.vue new file mode 100644 index 00000000..b9a9d6c0 --- /dev/null +++ b/ruoyi-ui/src/views/engineering/material/return.vue @@ -0,0 +1,248 @@ + + + + + \ No newline at end of file diff --git a/ruoyi-ui/src/views/engineering/material/returnBack.vue b/ruoyi-ui/src/views/engineering/material/returnBack.vue new file mode 100644 index 00000000..d442d101 --- /dev/null +++ b/ruoyi-ui/src/views/engineering/material/returnBack.vue @@ -0,0 +1,244 @@ + + + + + \ No newline at end of file diff --git a/ruoyi-ui/src/views/engineering/material/scrap.vue b/ruoyi-ui/src/views/engineering/material/scrap.vue new file mode 100644 index 00000000..d6ab8cf5 --- /dev/null +++ b/ruoyi-ui/src/views/engineering/material/scrap.vue @@ -0,0 +1,272 @@ + + + + + \ No newline at end of file diff --git a/ruoyi-ui/src/views/engineering/material/transfer.vue b/ruoyi-ui/src/views/engineering/material/transfer.vue new file mode 100644 index 00000000..a41d3abb --- /dev/null +++ b/ruoyi-ui/src/views/engineering/material/transfer.vue @@ -0,0 +1,271 @@ + + + + + \ No newline at end of file diff --git a/ruoyi-ui/src/views/engineering/supplier/SupplierAddOrEdit.vue b/ruoyi-ui/src/views/engineering/supplier/SupplierAddOrEdit.vue index 01fcac98..8a2d1cfd 100644 --- a/ruoyi-ui/src/views/engineering/supplier/SupplierAddOrEdit.vue +++ b/ruoyi-ui/src/views/engineering/supplier/SupplierAddOrEdit.vue @@ -80,7 +80,7 @@ export default { } }, methods: { - open(row) { + show(row) { this.open = true this.form = { supplierId: null, diff --git a/ruoyi-ui/src/views/engineering/supplier/SupplierDetail.vue b/ruoyi-ui/src/views/engineering/supplier/SupplierDetail.vue index b566ee06..32f05cbc 100644 --- a/ruoyi-ui/src/views/engineering/supplier/SupplierDetail.vue +++ b/ruoyi-ui/src/views/engineering/supplier/SupplierDetail.vue @@ -1,61 +1,65 @@