From 66d041ed14b3ed3ed7183a28a5c588e235fc21d0 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 26 五月 2026 11:14:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro_河南鹤壁' into dev_鹤壁_强信宇_pro
---
src/main/java/com/ruoyi/safe/controller/SafeTrainingDetailsController.java | 3
src/main/java/com/ruoyi/approve/controller/ApproveProcessConfigNodeController.java | 3
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java | 4
src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java | 5
src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml | 162 ++-
src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationParamController.java | 5
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java | 51 +
doc/20260523_新增入库记录表的预警数量.sql | 2
src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java | 11
src/main/java/com/ruoyi/ai/controller/SalesAiController.java | 4
src/main/resources/mapper/sales/SalesLedgerProductMapper.xml | 75 +
src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceExeclDto.java | 8
src/main/java/com/ruoyi/device/controller/DeviceDefectRecordController.java | 5
src/main/java/com/ruoyi/safe/controller/SafeCertificationFileController.java | 4
src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java | 7
src/main/java/com/ruoyi/collaborativeApproval/controller/MeetingController.java | 10
src/main/java/com/ruoyi/project/common/CommonController.java | 4
src/main/java/com/ruoyi/safe/controller/SafeHazardRecordController.java | 5
src/main/java/com/ruoyi/production/controller/ProductionOrderController.java | 5
src/main/java/com/ruoyi/device/controller/DeviceRepairController.java | 8
src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java | 6
src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java | 4
src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java | 11
src/main/java/com/ruoyi/approve/controller/NotificationManagementController.java | 7
src/test/java/com/ruoyi/stock/service/impl/StockOutRecordBatchUpdateTest.java | 254 +++++
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPlanController.java | 10
src/main/java/com/ruoyi/ai/controller/FinancialAiController.java | 4
src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java | 9
src/main/java/com/ruoyi/safe/controller/SafeAccidentController.java | 5
src/main/java/com/ruoyi/safe/controller/SafeHiddenController.java | 5
doc/add_rating_evaluation_fields.sql | 3
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 8
src/main/resources/mapper/basic/SupplierManageMapper.xml | 124 -
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 4
src/main/java/com/ruoyi/safe/controller/SafeTrainingController.java | 7
src/main/resources/mapper/sales/SalesQuotationMapper.xml | 2
src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java | 4
src/main/java/com/ruoyi/other/controller/PdaVersionController.java | 3
src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementFileController.java | 4
src/main/java/com/ruoyi/projectManagement/controller/PlanController.java | 4
src/main/java/com/ruoyi/staff/controller/PersonalShiftController.java | 5
src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java | 5
doc/update_after_sales_service.sql | 2
src/main/java/com/ruoyi/inspectiontask/controller/QrCodeController.java | 8
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | 1
src/main/java/com/ruoyi/projectManagement/controller/InfoController.java | 7
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 2
src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java | 5
src/main/java/com/ruoyi/staff/controller/HolidayApplicationController.java | 5
src/main/java/com/ruoyi/procurementrecord/controller/GasTankWarningController.java | 7
src/main/java/com/ruoyi/safe/controller/SafeHiddenFileController.java | 4
src/main/java/com/ruoyi/collaborativeApproval/controller/StaffContactsPersonalController.java | 4
src/main/java/com/ruoyi/approve/controller/RpaProcessAutomationController.java | 6
src/main/resources/mapper/approve/ApproveProcessMapper.xml | 9
src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java | 3
src/main/resources/mapper/quality/QualityInspectMapper.xml | 308 ++---
src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java | 50
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java | 50
src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java | 4
src/main/java/com/ruoyi/quality/controller/QualityInspectFileController.java | 4
src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java | 44
src/main/java/com/ruoyi/ai/controller/XiaozhiController.java | 5
src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java | 5
src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java | 8
src/main/resources/mapper/system/SysUserMapper.xml | 582 ++++++-----
src/main/java/com/ruoyi/inspectiontask/controller/TimingTaskController.java | 5
src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java | 4
src/main/java/com/ruoyi/project/tool/swagger/TestController.java | 49
src/main/java/com/ruoyi/staff/controller/PersonalAttendanceRecordsController.java | 4
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java | 6
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPriceManagementController.java | 10
src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java | 9
src/main/resources/mapper/basic/CustomerMapper.xml | 46
src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java | 8
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 7
src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java | 6
src/main/java/com/ruoyi/collaborativeApproval/controller/NoticeTypeController.java | 4
src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java | 3
src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java | 30
src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java | 37
src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java | 8
src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java | 5
src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java | 11
src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java | 3
src/main/java/com/ruoyi/staff/controller/StaffSchedulingController.java | 3
src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java | 6
src/main/java/com/ruoyi/procurementrecord/controller/InboundManagementController.java | 5
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java | 1
src/main/java/com/ruoyi/basic/controller/SupplierManageController.java | 4
src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementController.java | 8
src/main/resources/application-xcdq.yml | 0
src/main/resources/mapper/stock/StockOutRecordMapper.xml | 2
src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java | 6
src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java | 9
doc/20260522_StockInRecord列表源单号前端联调文档.md | 75 +
src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java | 7
src/main/resources/mapper/stock/StockInRecordMapper.xml | 91 +
src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java | 6
src/main/java/com/ruoyi/quality/pojo/QualityInspect.java | 7
src/main/java/com/ruoyi/warehouse/controller/DocumentationFileController.java | 4
src/main/java/com/ruoyi/technology/controller/TechnologyRoutingController.java | 11
src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java | 4
src/main/resources/mapper/production/ProductionOperationTaskMapper.xml | 6
src/main/java/com/ruoyi/projectManagement/controller/RolesController.java | 5
src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java | 33
src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java | 14
src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java | 17
src/main/java/com/ruoyi/safe/controller/SafeHazardController.java | 5
src/main/resources/mapper/production/ProductionPlanMapper.xml | 2
doc/20260522_采购台账入库状态_销售产品入库审核状态前端联调文档.md | 127 ++
src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java | 8
src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java | 2
src/main/java/com/ruoyi/ai/controller/PurchaseAiController.java | 6
src/main/java/com/ruoyi/procurementrecord/controller/ReturnSaleProductController.java | 2
.gitignore | 1
src/main/resources/mapper/device/DeviceMaintenanceMapper.xml | 36
src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java | 6
src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java | 8
src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java | 1
src/main/java/com/ruoyi/staff/controller/StaffLeaveController.java | 6
src/main/java/com/ruoyi/inspectiontask/controller/QrCodeScanRecordController.java | 8
src/main/java/com/ruoyi/safe/controller/SafeContingencyPlanController.java | 5
src/main/java/com/ruoyi/approve/controller/HolidaySettingsController.java | 14
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 12
src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java | 1
src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java | 12
src/main/java/com/ruoyi/ai/controller/ManufacturingAiController.java | 4
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java | 10
src/main/java/com/ruoyi/stock/pojo/StockInRecord.java | 9
src/main/java/com/ruoyi/basic/controller/StorageAttachmentController.java | 4
src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java | 2
src/main/resources/mapper/stock/StockInventoryMapper.xml | 2
doc/20260522_StockInRecord列表源单号前端联调文档_276补充.md | 65 +
src/main/java/com/ruoyi/device/controller/DeviceMaintenanceFileController.java | 4
src/main/resources/mapper/production/ProductionOrderMapper.xml | 2
src/main/java/com/ruoyi/technology/controller/TechnologyBomStructureController.java | 3
src/main/java/com/ruoyi/safe/controller/SafeTrainingFileController.java | 4
src/main/java/com/ruoyi/safe/controller/SafeCertificationController.java | 5
doc/20260523_ 协同审批新增出差时间和结束时间.sql | 3
src/main/java/com/ruoyi/measuringinstrumentledger/controller/SparePartsRequisitionRecordController.java | 3
140 files changed, 2,141 insertions(+), 812 deletions(-)
diff --git a/.gitignore b/.gitignore
index d3f800c..797d1c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@
!gradle/wrapper/gradle-wrapper.jar
claude.md
target/
+test/
!.mvn/wrapper/maven-wrapper.jar
######################################################################
diff --git "a/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
new file mode 100644
index 0000000..56d1570
--- /dev/null
+++ "b/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
@@ -0,0 +1,75 @@
+# StockInRecord 鍒楄〃婧愬崟鍙峰墠绔仈璋冩枃妗�
+
+鏇存柊鏃堕棿锛�2026-05-22
+閫傜敤鎺ュ彛锛歚GET /stockInRecord/listPage`
+
+## 1. 鍙樻洿璇存槑
+
+鏈瀵瑰叆搴撶鐞嗗垪琛ㄦ帴鍙e鍔犺繑鍥炲瓧娈� `sourceOrderNo`锛堟簮鍗曞彿锛夛紝鐢ㄤ簬鍘熸潗鏂欏満鏅睍绀洪噰璐潵婧愬崟鍙枫��
+
+鐢熸晥鏉′欢锛�
+
+- 褰撹姹傚弬鏁� `topParentProductId = 278` 鏃讹紝鍚庣杩斿洖 `sourceOrderNo`銆�
+- 鍏朵粬 `topParentProductId` 鍦烘櫙涓嬶紝璇ュ瓧娈佃繑鍥� `null`锛堟垨涓嶅睍绀猴級銆�
+
+## 2. 瀛楁瀹氫箟
+
+鏂板瀛楁锛�
+
+- `sourceOrderNo`锛歚string`锛屾簮鍗曞彿锛堥噰璐悎鍚屽彿锛夈��
+
+## 3. 鍙栧�艰鍒�
+
+浠呭湪 `topParentProductId = 278` 鏃舵寜鈥滄潵婧愨�濊绠楋細
+
+1. 鏉ユ簮 = `閲囪喘-鍏ュ簱`锛坄recordType = 7`锛�
+ - 鍏堟寜 `recordId` 鏌ラ噰璐骇鍝佽〃 `sales_ledger_product`锛坄type=2`锛夛紱
+ - 鍐嶉�氳繃 `sales_ledger_product.sales_ledger_id` 鏌ラ噰璐彴璐﹁〃 `purchase_ledger`锛�
+ - 杩斿洖 `purchase_ledger.purchase_contract_number` 浣滀负 `sourceOrderNo`銆�
+ - 鍏煎鍏滃簳锛氳嫢鏈懡涓噰璐骇鍝侀摼璺紝鍒欐寜 `recordId` 鐩存帴鏌� `purchase_ledger.id` 鍙栧崟鍙枫��
+
+2. 鏉ユ簮 = `閲囪喘-璐ㄦ-鍚堟牸鍏ュ簱`锛坄recordType = 10`锛�
+ - 鍏堟寜 `recordId` 鏌ヨ川妫�琛� `quality_inspect`锛�
+ - 鍐嶉�氳繃 `quality_inspect.purchase_ledger_id` 鏌ラ噰璐彴璐﹁〃 `purchase_ledger`锛�
+ - 杩斿洖 `purchase_ledger.purchase_contract_number` 浣滀负 `sourceOrderNo`銆�
+
+## 4. 杩斿洖绀轰緥
+
+```json
+{
+ "code": 200,
+ "msg": "鎿嶄綔鎴愬姛",
+ "data": {
+ "records": [
+ {
+ "id": 1024,
+ "recordType": "7",
+ "productName": "閾滄帓",
+ "model": "T2-30x3",
+ "sourceOrderNo": "CG-2026-00128"
+ },
+ {
+ "id": 1025,
+ "recordType": "10",
+ "productName": "閾滄帓",
+ "model": "T2-30x3",
+ "sourceOrderNo": "CG-2026-00131"
+ }
+ ],
+ "total": 2
+ }
+}
+```
+
+## 5. 鍓嶇鑱旇皟寤鸿
+
+1. 鍒楄〃鍒楁柊澧炩�滄簮鍗曞彿鈥濓紝璇诲彇瀛楁 `sourceOrderNo`銆�
+2. 寤鸿浠呭湪 `topParentProductId = 278` 鐨勯〉闈�/绛涢�夋潯浠朵笅灞曠ず璇ュ垪銆�
+3. 褰� `sourceOrderNo` 涓虹┖鏃跺睍绀� `--`锛岄伩鍏嶇┖鐧姐��
+
+## 6. 鍥炲綊娓呭崟
+
+1. `topParentProductId=278` + `recordType=7`锛氬簲杩斿洖閲囪喘鍚堝悓鍙枫��
+2. `topParentProductId=278` + `recordType=10`锛氬簲杩斿洖閲囪喘鍚堝悓鍙凤紙缁忚川妫�閾捐矾锛夈��
+3. `topParentProductId!=278`锛歚sourceOrderNo` 搴斾负 `null` 鎴栧墠绔笉灞曠ず銆�
+4. 鍘熸湁瀛楁锛坄productName/model/unit/createBy` 绛夛級涓嶅彈褰卞搷銆�
diff --git "a/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243_276\350\241\245\345\205\205.md" "b/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243_276\350\241\245\345\205\205.md"
new file mode 100644
index 0000000..93d9b25
--- /dev/null
+++ "b/doc/20260522_StockInRecord\345\210\227\350\241\250\346\272\220\345\215\225\345\217\267\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243_276\350\241\245\345\205\205.md"
@@ -0,0 +1,65 @@
+# StockInRecord 鍒楄〃婧愬崟鍙峰墠绔仈璋冩枃妗o紙`topParentProductId=276`琛ュ厖锛�
+
+鏇存柊鏃堕棿锛�2026-05-22
+閫傜敤鎺ュ彛锛歚GET /stockInRecord/listPage`
+
+## 1. 鍙樻洿璇存槑
+
+鍦ㄥ凡鏈� `sourceOrderNo` 鍩虹涓婏紝鏂板 `topParentProductId = 276` 鐨勬簮鍗曞彿婧簮閫昏緫锛�
+
+- 鏍规嵁鈥滄潵婧愶紙recordType锛�+ recordId鈥濇函婧愶紱
+- 浼樺厛杩斿洖閿�鍞崟鍙凤紙閿�鍞悎鍚屽彿锛夛紱
+- 鑻ラ攢鍞崟鍙蜂负绌猴紝鍒欏洖閫�杩斿洖鐢熶骇璁㈠崟鍙凤紱
+- 涓嶈�冭檻鑷畾涔夊叆搴擄紙`recordType=0/9`锛夈��
+
+## 2. 杩斿洖瀛楁
+
+瀛楁鏃犳柊澧烇紝缁х画浣跨敤锛�
+
+- `sourceOrderNo`锛歚string`锛屾簮鍗曞彿銆�
+
+## 3. 276 鍦烘櫙鍙栧�艰鍒�
+
+璇锋眰鍙傛暟婊¤冻 `topParentProductId = 276` 鏃讹細
+
+1. `recordType = 14/15`锛堥攢鍞��璐�-鍚堟牸/涓嶅悎鏍煎叆搴擄級
+ - `stock_in_record.record_id -> return_sale_product.id -> return_management.shipping_id -> shipping_info.sales_ledger_id -> sales_ledger.sales_contract_no`
+ - 杩斿洖閿�鍞悎鍚屽彿銆�
+
+2. `recordType = 2/5`锛堢敓浜ф姤宸�-鍏ュ簱/鎶ュ簾锛�
+ - `stock_in_record.record_id -> production_product_main.id -> production_operation_task.production_order_id -> production_order`
+ - 鍏堝彇璇ョ敓浜ц鍗曞叧鑱旈攢鍞悎鍚屽彿锛堢敱鐢熶骇璁″垝鍏宠仈閿�鍞彴璐﹁仛鍚堬級锛�
+ - 閿�鍞悎鍚屽彿涓虹┖鏃讹紝杩斿洖 `production_order.nps_no`銆�
+
+3. `recordType = 6`锛堣川妫�-鍚堟牸鍏ュ簱锛�
+ - `stock_in_record.record_id -> quality_inspect.id -> quality_inspect.product_main_id -> production_product_main -> production_operation_task -> production_order`
+ - 鍏堝彇閿�鍞悎鍚屽彿锛岀┖鍒欏洖閫� `production_order.nps_no`銆�
+
+4. `recordType = 4/11`锛堜笉鍚堟牸澶勭悊-鎶ュ簾/璁╂鏀捐锛�
+ - `stock_in_record.record_id -> quality_unqualified.id -> quality_unqualified.inspect_id -> quality_inspect -> production_product_main -> production_operation_task -> production_order`
+ - 鍏堝彇閿�鍞悎鍚屽彿锛岀┖鍒欏洖閫� `production_order.nps_no`銆�
+
+5. `recordType = 20/22`锛堥鏂欓��鏂�/鐢熶骇閫�鏂�-鍚堟牸鍏ュ簱锛�
+ - `stock_in_record.record_id -> production_order_pick.id -> production_order`
+ - 鍏堝彇閿�鍞悎鍚屽彿锛岀┖鍒欏洖閫� `production_order.nps_no`銆�
+
+6. `recordType = 0/9`锛堣嚜瀹氫箟鍏ュ簱锛�
+ - 涓嶅弬涓庢函婧愶紝`sourceOrderNo = null`銆�
+
+## 4. 鍏朵粬鍦烘櫙璇存槑
+
+- `topParentProductId = 278` 鐨勯噰璐摼璺簮鍗曞彿閫昏緫淇濇寔涓嶅彉銆�
+- 鍏朵粬 `topParentProductId` 涓嶈Е鍙戞湰娆� 276 瑙勫垯锛宍sourceOrderNo` 涓虹┖銆�
+
+## 5. 鍓嶇鑱旇皟寤鸿
+
+1. 鍦� `topParentProductId=276` 鐨勫垪琛ㄥ満鏅睍绀衡�滄簮鍗曞彿鈥濆垪锛岃鍙� `sourceOrderNo`銆�
+2. 寤鸿绌哄�肩粺涓�灞曠ず `--`銆�
+3. 涓嶉渶瑕佹柊澧炶姹傚弬鏁帮紝娌跨敤鐜版湁 `/stockInRecord/listPage`銆�
+
+## 6. 鍥炲綊娓呭崟
+
+1. `topParentProductId=276` + `recordType=14/15`锛氬簲杩斿洖閿�鍞悎鍚屽彿銆�
+2. `topParentProductId=276` + `recordType=2/5/6/4/11/20/22`锛氫紭鍏堥攢鍞悎鍚屽彿锛岀己澶辨椂杩斿洖鐢熶骇璁㈠崟鍙枫��
+3. `topParentProductId=276` + `recordType=0/9`锛歚sourceOrderNo` 涓虹┖銆�
+4. `topParentProductId=278`锛氫粛鎸夐噰璐摼璺繑鍥為噰璐悎鍚屽彿銆�
diff --git "a/doc/20260522_\351\207\207\350\264\255\345\217\260\350\264\246\345\205\245\345\272\223\347\212\266\346\200\201_\351\224\200\345\224\256\344\272\247\345\223\201\345\205\245\345\272\223\345\256\241\346\240\270\347\212\266\346\200\201\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md" "b/doc/20260522_\351\207\207\350\264\255\345\217\260\350\264\246\345\205\245\345\272\223\347\212\266\346\200\201_\351\224\200\345\224\256\344\272\247\345\223\201\345\205\245\345\272\223\345\256\241\346\240\270\347\212\266\346\200\201\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
new file mode 100644
index 0000000..ae212fc
--- /dev/null
+++ "b/doc/20260522_\351\207\207\350\264\255\345\217\260\350\264\246\345\205\245\345\272\223\347\212\266\346\200\201_\351\224\200\345\224\256\344\272\247\345\223\201\345\205\245\345\272\223\345\256\241\346\240\270\347\212\266\346\200\201\345\211\215\347\253\257\350\201\224\350\260\203\346\226\207\346\241\243.md"
@@ -0,0 +1,127 @@
+# 閲囪喘鍏ュ簱鐘舵�佸墠绔仈璋冩枃妗�
+鏇存柊鏃堕棿锛�2026-05-22
+閫傜敤鐗堟湰锛氭湰娆″悗绔彉鏇村悗
+
+## 1. 鍙樻洿鑼冨洿
+
+1. `GET /purchaseLedger/listPage`
+ - 鏂板鏌ヨ鏉′欢锛歚stockInStatus`锛堝叆搴撶姸鎬侊級
+ - 鏂板杩斿洖瀛楁锛歚stockInStatus`锛堝叆搴撶姸鎬侊級
+2. `GET /salesLedgerProduct/list`
+ - 鏂板杩斿洖瀛楁锛歚stockInApprovalStatus`锛堟瘡涓骇鍝佺殑鍏ュ簱瀹℃牳鐘舵�侊級
+
+---
+
+## 2. 鍏ュ簱鐘舵�佹灇涓撅紙涓ゆ帴鍙d竴鑷达級
+
+- `寰呭叆搴揱
+- `鍏ュ簱涓璥
+- `瀹屽叏鍏ュ簱`
+
+璇存槑锛氬墠绔瓫閫夊�艰鐩存帴浣跨敤浠ヤ笂涓枃鏋氫妇鍊笺��
+
+---
+
+## 3. 鎺ュ彛涓�锛歚GET /purchaseLedger/listPage`
+
+### 3.1 鏂板璇锋眰鍙傛暟
+
+- `stockInStatus`锛歚string`锛屽彲閫�
+ 鍙紶鍊硷細`寰呭叆搴揱 / `鍏ュ簱涓璥 / `瀹屽叏鍏ュ簱`
+
+### 3.2 鏂板杩斿洖瀛楁
+
+- `stockInStatus`锛歚string`锛岄噰璐彴璐︾淮搴﹀叆搴撶姸鎬�
+
+### 3.3 鐘舵�佽绠楄鍒欙紙閲囪喘鍙拌处缁村害锛�
+
+浠ヨ閲囪喘鍙拌处涓� `sales_ledger_product.type = 2` 鐨勯噰璐骇鍝佷负璁$畻鑼冨洿锛�
+
+1. 鍏ㄩ儴浜у搧閮借揪鍒扳�滃畬鍏ㄥ叆搴撯�� => 鍙拌处鐘舵�� `瀹屽叏鍏ュ簱`
+2. 鑷冲皯鏈変竴涓骇鍝佸瓨鍦ㄢ�滃鏍搁�氳繃鍏ュ簱鈥濓紝浣嗘湭鍏ㄩ儴瀹屽叏鍏ュ簱 => 鍙拌处鐘舵�� `鍏ュ簱涓璥
+3. 娌℃湁浠讳綍浜у搧瀛樺湪鈥滃鏍搁�氳繃鍏ュ簱鈥� => 鍙拌处鐘舵�� `寰呭叆搴揱
+
+鈥滃鏍搁�氳繃鍏ュ簱鈥濈粺璁″彛寰勶細`stock_in_record.approval_status = 1`锛屽苟鎸変互涓嬫潵婧愭函婧愶細
+- `record_type = 7`锛堥噰璐�-鍏ュ簱锛夛細鎸夐噰璐彴璐�+浜у搧鍏宠仈缁熻
+- `record_type = 10`锛堥噰璐�-璐ㄦ-鍚堟牸鍏ュ簱锛夛細閫氳繃 `quality_inspect` 鍥炴函鍒伴噰璐彴璐�+浜у搧缁熻
+
+### 3.4 杩斿洖绀轰緥锛堣妭閫夛級
+
+```json
+{
+ "code": 200,
+ "msg": "鎿嶄綔鎴愬姛",
+ "data": {
+ "records": [
+ {
+ "id": 1201,
+ "purchaseContractNumber": "CG20260522001",
+ "supplierName": "XX渚涘簲鍟�",
+ "stockInStatus": "鍏ュ簱涓�"
+ }
+ ],
+ "total": 1
+ }
+}
+```
+
+---
+
+## 4. 鎺ュ彛浜岋細`GET /salesLedgerProduct/list`
+
+### 4.1 鏂板杩斿洖瀛楁
+
+- `stockInApprovalStatus`锛歚string`锛屽綋鍓嶄骇鍝佽鐨勫叆搴撳鏍哥姸鎬�
+
+### 4.2 鐘舵�佽绠楄鍒欙紙浜у搧缁村害锛�
+
+浠呭綋浜у搧 `type = 2`锛堥噰璐骇鍝侊級鏃惰绠楀苟杩斿洖锛�
+
+1. 瀹℃牳閫氳繃鍏ュ簱鏁伴噺 `<= 0` => `寰呭叆搴揱
+2. 瀹℃牳閫氳繃鍏ュ簱鏁伴噺 `>= 浜у搧閲囪喘鏁伴噺` => `瀹屽叏鍏ュ簱`
+3. 鍏朵粬鎯呭喌 => `鍏ュ簱涓璥
+
+鍏朵腑鈥滃鏍搁�氳繃鍏ュ簱鏁伴噺鈥濈粺璁″悓鏍峰熀浜庯細
+- `stock_in_record.approval_status = 1`
+- 鏉ユ簮 `record_type = 7 / 10` 鐨勬函婧愬叧鑱旈�昏緫
+
+`type != 2` 鐨勪骇鍝侊紝璇ュ瓧娈佃繑鍥� `null`銆�
+
+### 4.3 杩斿洖绀轰緥锛堣妭閫夛級
+
+```json
+{
+ "code": 200,
+ "msg": "鎿嶄綔鎴愬姛",
+ "data": [
+ {
+ "id": 5566,
+ "type": 2,
+ "productCategory": "閾滄潗",
+ "specificationModel": "T2-30x3",
+ "quantity": 100,
+ "stockInApprovalStatus": "寰呭叆搴�"
+ }
+ ]
+}
+```
+
+---
+
+## 5. 鍓嶇鏀归�犲缓璁�
+
+1. 閲囪喘鍙拌处鍒楄〃鏂板鈥滃叆搴撶姸鎬佲�濈瓫閫夐」锛屽�煎浐瀹氾細`寰呭叆搴�/鍏ュ簱涓�/瀹屽叏鍏ュ簱`銆�
+2. 閲囪喘鍙拌处鍒楄〃鏂板鈥滃叆搴撶姸鎬佲�濆垪锛屽睍绀� `stockInStatus`銆�
+3. 閲囪喘浜у搧鍒楄〃鏂板鈥滃叆搴撳鏍哥姸鎬佲�濆垪锛屽睍绀� `stockInApprovalStatus`銆�
+4. 绌哄�硷紙濡� `type != 2`锛夊缓璁睍绀轰负 `--`銆�
+
+---
+
+## 6. 鑱旇皟妫�鏌ユ竻鍗�
+
+1. `/purchaseLedger/listPage` 涓嶄紶 `stockInStatus`锛氬簲姝e父杩斿洖鍏ㄩ儴鏁版嵁锛屽苟甯� `stockInStatus`銆�
+2. `/purchaseLedger/listPage?stockInStatus=寰呭叆搴揱锛氫粎杩斿洖寰呭叆搴撳彴璐︺��
+3. `/purchaseLedger/listPage?stockInStatus=鍏ュ簱涓璥锛氫粎杩斿洖鍏ュ簱涓彴璐︺��
+4. `/purchaseLedger/listPage?stockInStatus=瀹屽叏鍏ュ簱`锛氫粎杩斿洖瀹屽叏鍏ュ簱鍙拌处銆�
+5. `/salesLedgerProduct/list` 鍦ㄩ噰璐骇鍝侊紙`type=2`锛変笅杩斿洖 `stockInApprovalStatus`銆�
+6. `/salesLedgerProduct/list` 鍦ㄩ潪閲囪喘浜у搧锛坄type!=2`锛変笅 `stockInApprovalStatus` 涓� `null`銆�
diff --git "a/doc/20260523_ \345\215\217\345\220\214\345\256\241\346\211\271\346\226\260\345\242\236\345\207\272\345\267\256\346\227\266\351\227\264\345\222\214\347\273\223\346\235\237\346\227\266\351\227\264.sql" "b/doc/20260523_ \345\215\217\345\220\214\345\256\241\346\211\271\346\226\260\345\242\236\345\207\272\345\267\256\346\227\266\351\227\264\345\222\214\347\273\223\346\235\237\346\227\266\351\227\264.sql"
new file mode 100644
index 0000000..0e0c5ce
--- /dev/null
+++ "b/doc/20260523_ \345\215\217\345\220\214\345\256\241\346\211\271\346\226\260\345\242\236\345\207\272\345\267\256\346\227\266\351\227\264\345\222\214\347\273\223\346\235\237\346\227\266\351\227\264.sql"
@@ -0,0 +1,3 @@
+ALTER TABLE approve_process
+ ADD COLUMN start_date_time datetime DEFAULT NULL COMMENT '鍑哄樊寮�濮嬫椂闂�',
+ ADD COLUMN end_date_time datetime DEFAULT NULL COMMENT '鍑哄樊缁撴潫鏃堕棿';
diff --git "a/doc/20260523_\346\226\260\345\242\236\345\205\245\345\272\223\350\256\260\345\275\225\350\241\250\347\232\204\351\242\204\350\255\246\346\225\260\351\207\217.sql" "b/doc/20260523_\346\226\260\345\242\236\345\205\245\345\272\223\350\256\260\345\275\225\350\241\250\347\232\204\351\242\204\350\255\246\346\225\260\351\207\217.sql"
new file mode 100644
index 0000000..90392d2
--- /dev/null
+++ "b/doc/20260523_\346\226\260\345\242\236\345\205\245\345\272\223\350\256\260\345\275\225\350\241\250\347\232\204\351\242\204\350\255\246\346\225\260\351\207\217.sql"
@@ -0,0 +1,2 @@
+alter table stock_in_record
+ add warn_num decimal(16, 4) null comment '棰勮鏁伴噺';
diff --git a/doc/add_rating_evaluation_fields.sql b/doc/add_rating_evaluation_fields.sql
new file mode 100644
index 0000000..5cb24ec
--- /dev/null
+++ b/doc/add_rating_evaluation_fields.sql
@@ -0,0 +1,3 @@
+ALTER TABLE after_sales_service
+ ADD COLUMN rating DECIMAL(2, 1) COMMENT '璇勫垎(1-5鍒嗭紝鍙繚鐣�1浣嶅皬鏁�)' AFTER dis_date,
+ADD COLUMN evaluation VARCHAR(1000) COMMENT '璇勪环鍐呭鎻忚堪' AFTER rating;
diff --git a/doc/update_after_sales_service.sql b/doc/update_after_sales_service.sql
new file mode 100644
index 0000000..14cc8ec
--- /dev/null
+++ b/doc/update_after_sales_service.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `after_sales_service`
+ ADD COLUMN `product_model_quantities` varchar(255) DEFAULT NULL COMMENT '浜у搧鍨嬪彿瀵瑰簲鍞悗鏁伴噺';
diff --git a/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceExeclDto.java b/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceExeclDto.java
index 472ffcd..4780b29 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceExeclDto.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/dto/AfterSalesServiceExeclDto.java
@@ -62,4 +62,12 @@
@Excel(name = "鍏宠仈閮ㄩ棬")
private String deptName;
+ @Schema(description = "璇勫垎")
+ @Excel(name = "璇勫垎")
+ private String rating;
+
+ @Schema(description = "璇勪环鍐呭鎻忚堪")
+ @Excel(name = "璇勪环鍐呭鎻忚堪")
+ private String evaluation;
+
}
diff --git a/src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java b/src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java
index 43fa217..4b53fba 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/pojo/AfterSalesService.java
@@ -157,8 +157,16 @@
@Schema(description = "浜у搧鍨嬪彿IDs")
private String productModelIds;
+ @Schema(description = "浜у搧鍨嬪彿鏁伴噺,閫楀彿鍒嗛殧")
+ private String productModelQuantities;
+ @Schema(description = "璇勫垎(1-5鍒�)")
+ @Excel(name = "璇勫垎")
+ private BigDecimal rating;
+ @Schema(description = "璇勪环鍐呭鎻忚堪")
+ @Excel(name = "璇勪环鍐呭鎻忚堪")
+ private String evaluation;
@TableField(fill = FieldFill.INSERT)
private Long deptId;
diff --git a/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java b/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
index a141327..0feab41 100644
--- a/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
+++ b/src/main/java/com/ruoyi/aftersalesservice/service/impl/AfterSalesServiceServiceImpl.java
@@ -44,6 +44,7 @@
private final SysUserMapper sysUserMapper;
private final ISalesLedgerProductService salesLedgerProductService;
private final ISalesLedgerService salesLedgerService;
+ private final com.ruoyi.sales.mapper.ShippingInfoMapper shippingInfoMapper;
@Override
public IPage<AfterSalesServiceNewDto> listPage(Page page, AfterSalesServiceNewDto afterSalesService) {
@@ -81,6 +82,38 @@
SalesLedger byId = salesLedgerService.getById(afterSalesService.getSalesLedgerId());
List<Long> collect = Arrays.stream(afterSalesService.getProductModelIds().split(",")).map(Long::valueOf).collect(Collectors.toList());
List<SalesLedgerProduct> list = salesLedgerProductService.list(new QueryWrapper<SalesLedgerProduct>().lambda().in(SalesLedgerProduct::getId, collect));
+
+ if (StringUtils.isNotEmpty(afterSalesService.getProductModelQuantities())) {
+ String[] quantities = afterSalesService.getProductModelQuantities().split(",");
+ for (int i = 0; i < collect.size(); i++) {
+ Long productId = collect.get(i);
+ for (SalesLedgerProduct product : list) {
+ if (product.getId().equals(productId)) {
+ if (i < quantities.length && StringUtils.isNotEmpty(quantities[i])) {
+ product.setQuantity(new java.math.BigDecimal(quantities[i]));
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ for (SalesLedgerProduct product : list) {
+ com.ruoyi.sales.pojo.ShippingInfo shippingInfo = shippingInfoMapper.selectOne(
+ new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.ruoyi.sales.pojo.ShippingInfo>()
+ .eq(com.ruoyi.sales.pojo.ShippingInfo::getSalesLedgerProductId, product.getId())
+ .orderByDesc(com.ruoyi.sales.pojo.ShippingInfo::getCreateTime)
+ .last("limit 1")
+ );
+ if (shippingInfo != null) {
+ product.setShippingCarNumber(shippingInfo.getShippingCarNumber());
+ product.setShippingDate(shippingInfo.getShippingDate());
+ product.setShippingStatus(shippingInfo.getStatus());
+ product.setExpressCompany(shippingInfo.getExpressCompany());
+ product.setExpressNumber(shippingInfo.getExpressNumber());
+ }
+ }
+
AfterSalesServiceNewDto afterSalesServiceNewDto = new AfterSalesServiceNewDto();
BeanUtils.copyProperties(afterSalesService, afterSalesServiceNewDto);
SalesLedgerDto salesLedgerDto = new SalesLedgerDto();
diff --git a/src/main/java/com/ruoyi/ai/controller/FinancialAiController.java b/src/main/java/com/ruoyi/ai/controller/FinancialAiController.java
index 2a3089d..0680713 100644
--- a/src/main/java/com/ruoyi/ai/controller/FinancialAiController.java
+++ b/src/main/java/com/ruoyi/ai/controller/FinancialAiController.java
@@ -8,6 +8,8 @@
import com.ruoyi.ai.store.MongoChatMemoryStore;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -56,6 +58,7 @@
}
@Operation(summary = "璐㈠姟鏅鸿兘浣撳璇�")
+ @Log(title = "璐㈠姟鏅鸿兘浣撳璇�", businessType = BusinessType.OTHER)
@PostMapping(value = "/chat", produces = "text/stream;charset=utf-8")
public Flux<String> chat(@RequestBody ChatForm chatForm) {
if (!StringUtils.hasText(chatForm.getMemoryId())) {
@@ -100,6 +103,7 @@
}
@Operation(summary = "鍒犻櫎璐㈠姟鏅鸿兘浣撲細璇�")
+ @Log(title = "鍒犻櫎璐㈠姟鏅鸿兘浣撲細璇�", businessType = BusinessType.DELETE)
@DeleteMapping("/history/{memoryId}")
public AjaxResult deleteSession(@PathVariable String memoryId) {
aiSessionUserContext.remove(memoryId);
diff --git a/src/main/java/com/ruoyi/ai/controller/ManufacturingAiController.java b/src/main/java/com/ruoyi/ai/controller/ManufacturingAiController.java
index 87eb418..5069cc0 100644
--- a/src/main/java/com/ruoyi/ai/controller/ManufacturingAiController.java
+++ b/src/main/java/com/ruoyi/ai/controller/ManufacturingAiController.java
@@ -8,6 +8,8 @@
import com.ruoyi.ai.store.MongoChatMemoryStore;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -56,6 +58,7 @@
}
@Operation(summary = "鍒堕�犲璇�")
+ @Log(title = "鍒堕�犳櫤鑳戒綋瀵硅瘽", businessType = BusinessType.OTHER)
@PostMapping(value = "/chat", produces = "text/stream;charset=utf-8")
public Flux<String> chat(@RequestBody ChatForm chatForm) {
if (!StringUtils.hasText(chatForm.getMemoryId())) {
@@ -100,6 +103,7 @@
}
@Operation(summary = "鍒犻櫎鍒堕�犱細璇�")
+ @Log(title = "鍒犻櫎鍒堕�犳櫤鑳戒綋浼氳瘽", businessType = BusinessType.DELETE)
@DeleteMapping("/history/{memoryId}")
public AjaxResult deleteSession(@PathVariable String memoryId) {
aiSessionUserContext.remove(memoryId);
diff --git a/src/main/java/com/ruoyi/ai/controller/PurchaseAiController.java b/src/main/java/com/ruoyi/ai/controller/PurchaseAiController.java
index 158ea61..9377b67 100644
--- a/src/main/java/com/ruoyi/ai/controller/PurchaseAiController.java
+++ b/src/main/java/com/ruoyi/ai/controller/PurchaseAiController.java
@@ -4,6 +4,8 @@
import com.ruoyi.ai.bean.PurchaseAiConfirmRequest;
import com.ruoyi.ai.service.PurchaseAiService;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -32,6 +34,7 @@
}
@Operation(summary = "閲囪喘瀵硅瘽")
+ @Log(title = "閲囪喘鏅鸿兘浣撳璇�", businessType = BusinessType.OTHER)
@PostMapping(value = "/chat", produces = "text/stream;charset=utf-8")
public Flux<String> chat(@RequestBody ChatForm chatForm) {
LoginUser loginUser = SecurityUtils.getLoginUser();
@@ -39,6 +42,7 @@
}
@Operation(summary = "閲囪喘澶氭枃浠跺垎鏋�")
+ @Log(title = "閲囪喘澶氭枃浠跺垎鏋�", businessType = BusinessType.OTHER)
@PostMapping(value = "/analyze-files", consumes = "multipart/form-data", produces = "text/stream;charset=utf-8")
public Flux<String> analyzeFiles(@RequestParam("files") MultipartFile[] files,
@RequestParam(value = "message", required = false) String message,
@@ -48,6 +52,7 @@
}
@Operation(summary = "閲囪喘澶氭枃浠跺垎鏋愮‘璁ゅ鐞�")
+ @Log(title = "閲囪喘澶氭枃浠跺垎鏋愮‘璁�", businessType = BusinessType.OTHER)
@PostMapping("/analyze-files/confirm")
public AjaxResult confirmAnalyzeResult(@RequestBody PurchaseAiConfirmRequest request) {
return purchaseAiService.confirmAnalyzeResult(request);
@@ -68,6 +73,7 @@
}
@Operation(summary = "鍒犻櫎閲囪喘浼氳瘽")
+ @Log(title = "鍒犻櫎閲囪喘鏅鸿兘浣撲細璇�", businessType = BusinessType.DELETE)
@DeleteMapping("/history/{memoryId}")
public AjaxResult deleteSession(@PathVariable String memoryId) {
LoginUser loginUser = SecurityUtils.getLoginUser();
diff --git a/src/main/java/com/ruoyi/ai/controller/SalesAiController.java b/src/main/java/com/ruoyi/ai/controller/SalesAiController.java
index 0c92ad6..ae7b15f 100644
--- a/src/main/java/com/ruoyi/ai/controller/SalesAiController.java
+++ b/src/main/java/com/ruoyi/ai/controller/SalesAiController.java
@@ -8,6 +8,8 @@
import com.ruoyi.ai.store.MongoChatMemoryStore;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -56,6 +58,7 @@
}
@Operation(summary = "閿�鍞姪鎵嬪璇�")
+ @Log(title = "閿�鍞櫤鑳戒綋瀵硅瘽", businessType = BusinessType.OTHER)
@PostMapping(value = "/chat", produces = "text/stream;charset=utf-8")
public Flux<String> chat(@RequestBody ChatForm chatForm) {
if (!StringUtils.hasText(chatForm.getMemoryId())) {
@@ -110,6 +113,7 @@
}
@Operation(summary = "鍒犻櫎閿�鍞姪鎵嬩細璇�")
+ @Log(title = "鍒犻櫎閿�鍞櫤鑳戒綋浼氳瘽", businessType = BusinessType.DELETE)
@DeleteMapping("/history/{memoryId}")
public AjaxResult deleteSession(@PathVariable String memoryId) {
aiSessionUserContext.remove(memoryId);
diff --git a/src/main/java/com/ruoyi/ai/controller/XiaozhiController.java b/src/main/java/com/ruoyi/ai/controller/XiaozhiController.java
index 82d088c..7b8ea1c 100644
--- a/src/main/java/com/ruoyi/ai/controller/XiaozhiController.java
+++ b/src/main/java/com/ruoyi/ai/controller/XiaozhiController.java
@@ -10,6 +10,8 @@
import com.ruoyi.ai.store.MongoChatMemoryStore;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -70,6 +72,7 @@
}
@Operation(summary = "瀵硅瘽")
+ @Log(title = "鍗忓悓鍔炲叕鍔╂墜瀵硅瘽", businessType = BusinessType.OTHER)
@PostMapping(value = "/chat", produces = "text/stream;charset=utf-8")
public Flux<String> chat(@RequestBody ChatForm chatForm) {
if (!StringUtils.hasText(chatForm.getMemoryId())) {
@@ -111,6 +114,7 @@
}
@Operation(summary = "涓婁紶鏂囦欢鍒嗘瀽")
+ @Log(title = "涓婁紶鏂囦欢鍒嗘瀽", businessType = BusinessType.OTHER)
@PostMapping(value = "/analyze-file", consumes = "multipart/form-data", produces = "text/stream;charset=utf-8")
public Flux<String> analyzeFile(@RequestParam("file") MultipartFile file,
@RequestParam(value = "message", required = false) String message,
@@ -169,6 +173,7 @@
}
@Operation(summary = "鍒犻櫎浼氳瘽")
+ @Log(title = "鍒犻櫎鍗忓悓鍔炲叕鍔╂墜浼氳瘽", businessType = BusinessType.DELETE)
@DeleteMapping("/history/{memoryId}")
public AjaxResult deleteSession(@PathVariable String memoryId) {
aiSessionUserContext.remove(memoryId);
diff --git a/src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java b/src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java
index f43ecac..4bf8d2f 100644
--- a/src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java
+++ b/src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java
@@ -9,6 +9,7 @@
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
+import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@@ -45,6 +46,14 @@
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endDate;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ @Schema(description = "鍑哄樊寮�濮嬫椂闂�")
+ private LocalDateTime startDateTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ @Schema(description = "鍑哄樊缁撴潫鏃堕棿")
+ private LocalDateTime endDateTime;
+
private BigDecimal price;
private String location;
diff --git a/src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java b/src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java
index 8c5db04..8e730ff 100644
--- a/src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java
+++ b/src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java
@@ -8,6 +8,7 @@
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
+import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@@ -58,6 +59,14 @@
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endDate;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ @Schema(description = "鍑哄樊寮�濮嬫椂闂�")
+ private LocalDateTime startDateTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ @Schema(description = "鍑哄樊缁撴潫鏃堕棿")
+ private LocalDateTime endDateTime;
+
private BigDecimal price;
private String location;
diff --git a/src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java b/src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java
index d0af196..80d6bd8 100644
--- a/src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java
+++ b/src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java
@@ -2,6 +2,8 @@
import com.ruoyi.approve.pojo.ApproveNode;
import com.ruoyi.approve.service.IApproveNodeService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
@@ -35,6 +37,7 @@
* @param approveNode
* @return
*/
+ @Log(title = "瀹℃壒鑺傜偣", businessType = BusinessType.UPDATE)
@PostMapping("/updateApproveNode")
@Transactional(rollbackFor = Exception.class)
@Operation(summary = "瀹℃壒鑺傜偣")
@@ -48,6 +51,7 @@
* @param id
* @return
*/
+ @Log(title = "鍒濆鍖栧鎵硅妭鐐�", businessType = BusinessType.INSERT)
@PostMapping("/init")
public AjaxResult init(String id) {
approveNodeService.initApproveNodes("",id,1L);
diff --git a/src/main/java/com/ruoyi/approve/controller/ApproveProcessConfigNodeController.java b/src/main/java/com/ruoyi/approve/controller/ApproveProcessConfigNodeController.java
index b837af6..939aa38 100644
--- a/src/main/java/com/ruoyi/approve/controller/ApproveProcessConfigNodeController.java
+++ b/src/main/java/com/ruoyi/approve/controller/ApproveProcessConfigNodeController.java
@@ -2,6 +2,8 @@
import com.ruoyi.approve.pojo.ApproveProcessConfigNode;
import com.ruoyi.approve.service.ApproveProcessConfigNodeService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@@ -41,6 +43,7 @@
* @return
*/
@ApiOperation("娣诲姞瀹℃壒鑺傜偣")
+ @Log(title = "瀹℃壒娴佺▼鑺傜偣", businessType = BusinessType.INSERT)
@PostMapping("/add")
public R addApproveProcessConfigNodes(@RequestBody List<ApproveProcessConfigNode> approveProcessConfigNodes) {
return R.ok(approveProcessConfigNodeService.addApproveProcessConfigNodes(approveProcessConfigNodes));
diff --git a/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java b/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
index ed02564..3b44724 100644
--- a/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
+++ b/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
@@ -8,6 +8,8 @@
import com.ruoyi.approve.bean.vo.ApproveProcessVO;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysDept;
@@ -47,6 +49,7 @@
* @param approveProcessVO
* @return
*/
+ @Log(title = "娣诲姞瀹℃壒", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Transactional(rollbackFor = Exception.class)
@Operation(summary = "娣诲姞瀹℃壒")
@@ -78,6 +81,7 @@
* @param approveGetAndUpdateVo
* @return
*/
+ @Log(title = "鏇存柊瀹℃壒", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Transactional(rollbackFor = Exception.class)
@Operation(summary = "鏇存柊瀹℃壒")
@@ -103,6 +107,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎瀹℃壒", businessType = BusinessType.DELETE)
@DeleteMapping("/deleteIds")
@Operation(summary = "鍒犻櫎瀹℃壒")
@Transactional(rollbackFor = Exception.class)
@@ -115,6 +120,7 @@
}
@Operation(summary = "鍏嚭绠$悊瀵煎嚭")
+ @Log(title = "鍏嚭绠$悊瀵煎嚭", businessType = BusinessType.EXPORT)
@PostMapping("/exportOne")
public void exportOne(HttpServletResponse response) {
List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
@@ -125,6 +131,7 @@
}
@Operation(summary = "璇峰亣绠$悊瀵煎嚭")
+ @Log(title = "璇峰亣绠$悊瀵煎嚭", businessType = BusinessType.EXPORT)
@PostMapping("/exportTwo")
public void exportTwo(HttpServletResponse response) {
List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
@@ -135,6 +142,7 @@
}
@Operation(summary = "鍑哄樊绠$悊瀵煎嚭")
+ @Log(title = "鍑哄樊绠$悊瀵煎嚭", businessType = BusinessType.EXPORT)
@PostMapping("/exportThree")
public void exportThree(HttpServletResponse response) {
List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
@@ -145,6 +153,7 @@
}
@Operation(summary = "鎶ラ攢绠$悊瀵煎嚭")
+ @Log(title = "鎶ラ攢绠$悊瀵煎嚭", businessType = BusinessType.EXPORT)
@PostMapping("/exportFour")
public void exportFour(HttpServletResponse response) {
List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
@@ -155,6 +164,7 @@
}
@Operation(summary = "閲囪喘鐢宠瀵煎嚭")
+ @Log(title = "閲囪喘鐢宠瀵煎嚭", businessType = BusinessType.EXPORT)
@PostMapping("/exportFive")
public void exportFive(HttpServletResponse response) {
List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
@@ -165,6 +175,7 @@
}
@Operation(summary = "鍗忓悓瀹℃壒瀵煎嚭")
+ @Log(title = "鍗忓悓瀹℃壒瀵煎嚭", businessType = BusinessType.EXPORT)
@PostMapping("/exportZero")
public void exportZero(HttpServletResponse response) {
List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
@@ -175,6 +186,7 @@
}
@Operation(summary = "鍗遍櫓浣滀笟瀹℃壒瀵煎嚭")
+ @Log(title = "鍗遍櫓浣滀笟瀹℃壒瀵煎嚭", businessType = BusinessType.EXPORT)
@PostMapping("/exportEight")
public void exportEight(HttpServletResponse response) {
List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
diff --git a/src/main/java/com/ruoyi/approve/controller/HolidaySettingsController.java b/src/main/java/com/ruoyi/approve/controller/HolidaySettingsController.java
index 97abe9f..e561984 100644
--- a/src/main/java/com/ruoyi/approve/controller/HolidaySettingsController.java
+++ b/src/main/java/com/ruoyi/approve/controller/HolidaySettingsController.java
@@ -7,6 +7,8 @@
import com.ruoyi.approve.mapper.WorkingHoursSettingMapper;
import com.ruoyi.approve.pojo.*;
import com.ruoyi.approve.service.HolidaySettingsService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +39,7 @@
* 澧炴坊
* @return
*/
+ @Log(title = "澧炴坊鍋囨湡璁剧疆", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody HolidaySettings holidaySettings){
return AjaxResult.success(holidaySettingsService.save(holidaySettings));
@@ -45,6 +48,7 @@
* 鏇存柊
* @return
*/
+ @Log(title = "鏇存柊鍋囨湡璁剧疆", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult update(@RequestBody HolidaySettings holidaySettings){
return AjaxResult.success(holidaySettingsService.updateById(holidaySettings));
@@ -53,6 +57,7 @@
* 鍒犻櫎
* @return
*/
+ @Log(title = "鍒犻櫎鍋囨湡璁剧疆", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
public AjaxResult delete(@RequestBody List<Long> ids){
if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
@@ -72,6 +77,7 @@
* 澧炴坊骞村亣瑙勫垯
* @return
*/
+ @Log(title = "澧炴坊骞村亣瑙勫垯", businessType = BusinessType.INSERT)
@PostMapping("/addAnnualLeaveSetting")
public AjaxResult addAnnualLeaveSetting(@RequestBody AnnualLeaveSetting annualLeaveSetting){
return AjaxResult.success(annualLeaveSettingMapper.insert(annualLeaveSetting));
@@ -80,6 +86,7 @@
* 鏇存柊骞村亣瑙勫垯
* @return
*/
+ @Log(title = "鏇存柊骞村亣瑙勫垯", businessType = BusinessType.UPDATE)
@PostMapping("/updateAnnualLeaveSetting")
public AjaxResult updateAnnualLeaveSetting(@RequestBody AnnualLeaveSetting annualLeaveSetting){
return AjaxResult.success(annualLeaveSettingMapper.updateById(annualLeaveSetting));
@@ -88,6 +95,7 @@
* 鍒犻櫎骞村亣瑙勫垯
* @return
*/
+ @Log(title = "鍒犻櫎骞村亣瑙勫垯", businessType = BusinessType.DELETE)
@DeleteMapping("/deleteAnnualLeaveSetting")
public AjaxResult deleteAnnualLeaveSetting(@RequestBody List<Long> ids){
if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
@@ -108,6 +116,7 @@
* 澧炴坊鍔犵彮瑙勫垯
* @return
*/
+ @Log(title = "澧炴坊鍔犵彮瑙勫垯", businessType = BusinessType.INSERT)
@PostMapping("/addOvertimeSetting")
public AjaxResult addOvertimeSetting(@RequestBody OvertimeSetting overtimeSetting){
return AjaxResult.success(overtimeSettingMapper.insert(overtimeSetting));
@@ -116,6 +125,7 @@
* 鏇存柊鍔犵彮瑙勫垯
* @return
*/
+ @Log(title = "鏇存柊鍔犵彮瑙勫垯", businessType = BusinessType.UPDATE)
@PostMapping("/updateOvertimeSetting")
public AjaxResult updateOvertimeSetting(@RequestBody OvertimeSetting overtimeSetting){
return AjaxResult.success(overtimeSettingMapper.updateById(overtimeSetting));
@@ -124,6 +134,7 @@
* 鍒犻櫎鍔犵彮瑙勫垯
* @return
*/
+ @Log(title = "鍒犻櫎鍔犵彮瑙勫垯", businessType = BusinessType.DELETE)
@DeleteMapping("/deleteOvertimeSetting")
public AjaxResult deleteOvertimeSetting(@RequestBody List<Long> ids){
if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
@@ -143,6 +154,7 @@
* 澧炴坊鐝埗瑙勫垯
* @return
*/
+ @Log(title = "澧炴坊鐝埗瑙勫垯", businessType = BusinessType.INSERT)
@PostMapping("/addWorkingHoursSetting")
public AjaxResult addWorkingHoursSetting(@RequestBody WorkingHoursSetting workingHoursSetting){
return AjaxResult.success(workingHoursSettingMapper.insert(workingHoursSetting));
@@ -151,6 +163,7 @@
* 鏇存柊鐝埗瑙勫垯
* @return
*/
+ @Log(title = "鏇存柊鐝埗瑙勫垯", businessType = BusinessType.UPDATE)
@PostMapping("/updateWorkingHoursSetting")
public AjaxResult updateWorkingHoursSetting(@RequestBody WorkingHoursSetting workingHoursSetting){
return AjaxResult.success(workingHoursSettingMapper.updateById(workingHoursSetting));
@@ -159,6 +172,7 @@
* 鍒犻櫎鐝埗瑙勫垯
* @return
*/
+ @Log(title = "鍒犻櫎鐝埗瑙勫垯", businessType = BusinessType.DELETE)
@DeleteMapping("/deleteWorkingHoursSetting")
public AjaxResult deleteWorkingHoursSetting(@RequestBody List<Long> ids){
if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
diff --git a/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java
index 3ebb782..4bbb84b 100644
--- a/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java
+++ b/src/main/java/com/ruoyi/approve/controller/KnowledgeBaseController.java
@@ -5,6 +5,8 @@
import com.ruoyi.approve.pojo.KnowledgeBase;
import com.ruoyi.approve.service.KnowledgeBaseService;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
@@ -35,6 +37,7 @@
* 澧炴坊
* @return
*/
+ @Log(title = "鐭ヨ瘑搴�", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody KnowledgeBase knowledgeBase){
return AjaxResult.success(knowledgeBaseService.save(knowledgeBase));
@@ -43,6 +46,7 @@
* 鏇存柊
* @return
*/
+ @Log(title = "鐭ヨ瘑搴�", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult update(@RequestBody KnowledgeBase knowledgeBase){
return AjaxResult.success(knowledgeBaseService.updateById(knowledgeBase));
@@ -51,12 +55,14 @@
* 鍒犻櫎
* @return
*/
+ @Log(title = "鐭ヨ瘑搴�", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
public AjaxResult delete(@RequestBody List<Long> ids){
if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
return AjaxResult.success(knowledgeBaseService.removeByIds(ids));
}
+ @Log(title = "鐭ヨ瘑搴�", businessType = BusinessType.EXPORT)
@Operation(summary = "鐭ヨ瘑搴撶鐞嗗鍑�")
@PostMapping("/export")
public void export(HttpServletResponse response) {
diff --git a/src/main/java/com/ruoyi/approve/controller/NotificationManagementController.java b/src/main/java/com/ruoyi/approve/controller/NotificationManagementController.java
index a1796f8..97e8d8b 100644
--- a/src/main/java/com/ruoyi/approve/controller/NotificationManagementController.java
+++ b/src/main/java/com/ruoyi/approve/controller/NotificationManagementController.java
@@ -8,6 +8,8 @@
import com.ruoyi.approve.pojo.NotificationManagement;
import com.ruoyi.approve.pojo.OnlineMeeting;
import com.ruoyi.approve.service.NotificationManagementService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +38,7 @@
* 澧炴坊
* @return
*/
+ @Log(title = "澧炴坊閫氱煡绠$悊", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody NotificationManagement notificationManagement){
return AjaxResult.success(notificationManagementService.save(notificationManagement));
@@ -44,6 +47,7 @@
* 鏇存柊
* @return
*/
+ @Log(title = "鏇存柊閫氱煡绠$悊", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult update(@RequestBody NotificationManagement notificationManagement){
return AjaxResult.success(notificationManagementService.updateById(notificationManagement));
@@ -52,6 +56,7 @@
* 鍒犻櫎
* @return
*/
+ @Log(title = "鍒犻櫎閫氱煡绠$悊", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
public AjaxResult delete(@RequestBody List<Long> ids){
if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
@@ -62,6 +67,7 @@
* @param onlineMeeting
* @return
*/
+ @Log(title = "鏂板绾夸笂浼氳", businessType = BusinessType.INSERT)
@PostMapping("/addOnlineMeeting")
public AjaxResult addOnlineMeeting(@RequestBody OnlineMeeting onlineMeeting){
return AjaxResult.success(onlineMeetingMapper.insert(onlineMeeting));
@@ -70,6 +76,7 @@
*鏂板鏂囦欢鍏变韩
*
*/
+ @Log(title = "鏂板鏂囦欢鍏变韩", businessType = BusinessType.INSERT)
@PostMapping("/addFileSharing")
public AjaxResult addFileSharing(@RequestBody FileSharing fileSharing){
return AjaxResult.success(fileSharingMapper.insert(fileSharing));
diff --git a/src/main/java/com/ruoyi/approve/controller/RpaProcessAutomationController.java b/src/main/java/com/ruoyi/approve/controller/RpaProcessAutomationController.java
index 06a0f6d..7743769 100644
--- a/src/main/java/com/ruoyi/approve/controller/RpaProcessAutomationController.java
+++ b/src/main/java/com/ruoyi/approve/controller/RpaProcessAutomationController.java
@@ -5,6 +5,8 @@
import com.ruoyi.approve.pojo.RpaProcessAutomation;
import com.ruoyi.approve.service.RpaProcessAutomationService;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
@@ -34,6 +36,7 @@
* 澧炴坊
* @return
*/
+ @Log(title = "RPA娴佺▼鑷姩鍖�", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody RpaProcessAutomation rpaProcessAutomation){
return AjaxResult.success(rpaProcessAutomationService.save(rpaProcessAutomation));
@@ -42,6 +45,7 @@
* 鏇存柊
* @return
*/
+ @Log(title = "RPA娴佺▼鑷姩鍖�", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult update(@RequestBody RpaProcessAutomation rpaProcessAutomation){
return AjaxResult.success(rpaProcessAutomationService.updateById(rpaProcessAutomation));
@@ -50,12 +54,14 @@
* 鍒犻櫎
* @return
*/
+ @Log(title = "RPA娴佺▼鑷姩鍖�", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
public AjaxResult delete(@RequestBody List<Long> ids){
if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
return AjaxResult.success(rpaProcessAutomationService.removeByIds(ids));
}
+ @Log(title = "RPA娴佺▼鑷姩鍖�", businessType = BusinessType.EXPORT)
@Operation(summary = "RPA娴佺▼鑷姩鍖栧鍑�")
@PostMapping("/export")
public void export(HttpServletResponse response) {
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index bd56b0f..728878b 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -151,6 +151,16 @@
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endDate;
+ @Excel(name = "鍑哄樊寮�濮嬫椂闂�", dateFormat = "yyyy-MM-dd HH:mm", width = 30)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ @Schema(description = "鍑哄樊寮�濮嬫椂闂�")
+ private LocalDateTime startDateTime;
+
+ @Excel(name = "鍑哄樊缁撴潫鏃堕棿", dateFormat = "yyyy-MM-dd HH:mm", width = 30)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ @Schema(description = "鍑哄樊缁撴潫鏃堕棿")
+ private LocalDateTime endDateTime;
+
private BigDecimal price;
private String location;
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index c9d7aae..185fa68 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -113,6 +113,8 @@
approveProcess.setPrice(approveProcessVO.getPrice());
approveProcess.setStartDate(approveProcessVO.getStartDate());
approveProcess.setEndDate(approveProcessVO.getEndDate());
+ approveProcess.setStartDateTime(approveProcessVO.getStartDateTime());
+ approveProcess.setEndDateTime(approveProcessVO.getEndDateTime());
approveProcess.setApproveStatus(0);
approveProcess.setApproveDelete(0);
approveProcess.setApproveType(approveProcessVO.getApproveType());
diff --git a/src/main/java/com/ruoyi/basic/controller/StorageAttachmentController.java b/src/main/java/com/ruoyi/basic/controller/StorageAttachmentController.java
index 79ae5d4..d937e27 100644
--- a/src/main/java/com/ruoyi/basic/controller/StorageAttachmentController.java
+++ b/src/main/java/com/ruoyi/basic/controller/StorageAttachmentController.java
@@ -2,6 +2,8 @@
import com.ruoyi.basic.dto.StorageAttachmentDTO;
import com.ruoyi.basic.service.StorageAttachmentService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -35,6 +37,7 @@
* @param ids 鏂囦欢id鍒楄〃
* @return 鍒犻櫎缁撴灉
*/
+ @Log(title = "瀛樺偍闄勪欢", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎閫氱敤鏂囦欢涓婁紶鐨勯檮浠朵俊鎭�")
public R batchDelete(@RequestBody List<Long> ids) {
@@ -44,6 +47,7 @@
/**
* 淇濆瓨閫氱敤鏂囦欢涓婁紶鐨勯檮浠朵俊鎭�
*/
+ @Log(title = "瀛樺偍闄勪欢", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "淇濆瓨閫氱敤鏂囦欢涓婁紶鐨勯檮浠朵俊鎭�")
public R add(@RequestBody StorageAttachmentDTO storageAttachmentDTO) {
diff --git a/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java b/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java
index 1a58500..05d262c 100644
--- a/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java
+++ b/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java
@@ -28,6 +28,7 @@
* @param supplierManage
* @return
*/
+ @Log(title = "渚涘簲鍟嗙鐞�", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody SupplierManage supplierManage) {
supplierService.saveSupplier(supplierManage);
@@ -39,6 +40,7 @@
* @param ids
* @return
*/
+ @Log(title = "渚涘簲鍟嗙鐞�", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public AjaxResult delSupplier(@RequestBody List<Integer> ids) {
if(CollectionUtils.isEmpty(ids)){
@@ -63,6 +65,7 @@
* @param supplierManage
* @return
*/
+ @Log(title = "渚涘簲鍟嗙鐞�", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult update(@RequestBody SupplierManage supplierManage) {
supplierService.supplierUpdate(supplierManage);
@@ -85,6 +88,7 @@
* @param response
* @param supplierManageDto
*/
+ @Log(title = "渚涘簲鍟嗙鐞�", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void supplierExport(HttpServletResponse response,SupplierManageDto supplierManageDto) {
supplierService.supplierExport(response, supplierManageDto);
diff --git a/src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java b/src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java
index 2d43f65..213a851 100644
--- a/src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java
+++ b/src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.pojo.SupplierManageFile;
import com.ruoyi.basic.service.SupplierManageFileService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -27,6 +29,7 @@
* @param supplierManageFile
* @return
*/
+ @Log(title = "鏂板渚涘簲鍟嗛檮浠�", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody SupplierManageFile supplierManageFile) {
return AjaxResult.success(supplierManageFileService.save(supplierManageFile));
@@ -37,6 +40,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎渚涘簲鍟嗛檮浠�", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public AjaxResult delSupplierManageFile(@RequestBody List<Integer> ids) {
if(CollectionUtils.isEmpty(ids)){
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java
index d622e99..e9d29e7 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java
@@ -7,6 +7,8 @@
import com.ruoyi.collaborativeApproval.pojo.RulesRegulationsManagement;
import com.ruoyi.collaborativeApproval.service.DutyPlanService;
import com.ruoyi.common.utils.excel.ExcelUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
@@ -34,18 +36,21 @@
return AjaxResult.success(dutyPlanService.getNum());
}
+ @Log(title = "鏂板鍊肩彮璁″垝", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "鏂板")
public AjaxResult add(@RequestBody DutyPlan dutyPlan){
return AjaxResult.success(dutyPlanService.save(dutyPlan));
}
+ @Log(title = "淇敼鍊肩彮璁″垝", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "淇敼")
public AjaxResult update(@RequestBody DutyPlan dutyPlan){
return AjaxResult.success(dutyPlanService.updateById(dutyPlan));
}
+ @Log(title = "鍒犻櫎鍊肩彮璁″垝", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎")
public AjaxResult delete(@RequestBody List<Long> ids){
@@ -54,6 +59,7 @@
}
return AjaxResult.success(dutyPlanService.removeBatchByIds(ids));
}
+ @Log(title = "瀵煎嚭鍊肩彮璁″垝", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@Operation(summary = "瀵煎嚭")
public void exportData(HttpServletResponse response, DutyPlanDTO dutyPlanDTO){
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/MeetingController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/MeetingController.java
index 917bda6..716dbe7 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/controller/MeetingController.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/MeetingController.java
@@ -13,6 +13,8 @@
import com.ruoyi.collaborativeApproval.vo.SearchMeetingRoomVo;
import com.ruoyi.collaborativeApproval.vo.SearchMeetingUseVo;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
@@ -42,6 +44,7 @@
return R.ok(meetingService.getMeetingRoomList(vo));
}
+ @Log(title = "鏂板浼氳瀹�", businessType = BusinessType.INSERT)
@PostMapping("/saveRoom")
public R saveRoom(@RequestBody MeetingRoom meetingRoom) {
meetingService.saveMeetRoom(meetingRoom);
@@ -53,6 +56,7 @@
return R.ok(meetingService.findMeetRoomById(id));
}
+ @Log(title = "鍒犻櫎浼氳瀹�", businessType = BusinessType.DELETE)
@DeleteMapping("/delRoom/{id}")
public R deleteRoom(@PathVariable Long id) {
meetingService.deleteMeetingRoom(id);
@@ -69,18 +73,21 @@
return R.ok(meetingService.getMeetingDraftList(vo));
}
+ @Log(title = "淇濆瓨浼氳鑽夌", businessType = BusinessType.INSERT)
@PostMapping("/saveDraft")
public R saveMeetingDraft(@RequestBody MeetDraft meetDraft) {
meetingService.saveMeetDraft(meetDraft);
return R.ok();
}
+ @Log(title = "鍒犻櫎浼氳鑽夌", businessType = BusinessType.DELETE)
@DeleteMapping("/delDraft/{id}")
public R deleteMeetingDraft(@PathVariable Long id) {
meetingService.deleteMeetingDraft(id);
return R.ok();
}
+ @Log(title = "鏂板浼氳鐢宠", businessType = BusinessType.INSERT)
@PostMapping("/saveMeetingApplication")
public R saveMeetApplication(@RequestBody MeetApplication meetApplication) {
return meetingService.saveMeetApplication(meetApplication);
@@ -110,6 +117,7 @@
return R.ok(meetingService.getMeetingMinutesById(id));
}
+ @Log(title = "淇濆瓨浼氳绾", businessType = BusinessType.INSERT)
@PostMapping("/saveMeetingMinutes")
public R saveMeetingMinutes(@RequestBody MeetingMinutes meetingMinutes) {
meetingService.saveMeetingMinutes(meetingMinutes);
@@ -127,6 +135,7 @@
}
@Operation(summary = "浼氳瀹よ缃鍑�")
+ @Log(title = "瀵煎嚭浼氳瀹よ缃�", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response) {
List<MeetingRoom> accountExpenses = meetingService.list();
@@ -137,6 +146,7 @@
private final MeetDraftMapper meetDraftMapper;
@Operation(summary = "浼氳鑽夌瀵煎嚭")
+ @Log(title = "瀵煎嚭浼氳鑽夌", businessType = BusinessType.EXPORT)
@PostMapping("/exportOne")
public void exportOne(HttpServletResponse response) {
List<MeetDraft> accountExpenses = meetDraftMapper.selectList(new LambdaQueryWrapper<MeetDraft>());
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/NoticeTypeController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/NoticeTypeController.java
index dba3e77..9489dfa 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/controller/NoticeTypeController.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/NoticeTypeController.java
@@ -5,6 +5,8 @@
import com.ruoyi.basic.pojo.SupplierManage;
import com.ruoyi.collaborativeApproval.pojo.NoticeType;
import com.ruoyi.collaborativeApproval.service.NoticeTypeService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +35,7 @@
* @param noticeType
* @return
*/
+ @Log(title = "鏂板鍏憡绫诲瀷", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody NoticeType noticeType) {
return AjaxResult.success(noticeTypeService.saveOrUpdate(noticeType));
@@ -43,6 +46,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎鍏憡绫诲瀷", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public AjaxResult delNoticeType(@RequestBody List<Integer> ids) {
if(CollectionUtils.isEmpty(ids)){
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementController.java
index 5e59117..5cf7689 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementController.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementController.java
@@ -8,6 +8,8 @@
import com.ruoyi.collaborativeApproval.pojo.SealApplicationManagement;
import com.ruoyi.collaborativeApproval.service.RulesRegulationsManagementService;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
@@ -33,6 +35,7 @@
return AjaxResult.success(rulesRegulationsManagementService.listPage(page, rulesRegulationsManagement));
}
+ @Log(title = "鏂板瑙勭珷鍒跺害", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "鏂板")
public AjaxResult add(@RequestBody RulesRegulationsManagement rulesRegulationsManagement){
@@ -40,12 +43,14 @@
return AjaxResult.success(rulesRegulationsManagement.getId());
}
+ @Log(title = "淇敼瑙勭珷鍒跺害", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "淇敼")
public AjaxResult update(@RequestBody RulesRegulationsManagement rulesRegulationsManagement){
return AjaxResult.success(rulesRegulationsManagementService.updateById(rulesRegulationsManagement));
}
+ @Log(title = "鍒犻櫎瑙勭珷鍒跺害", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎")
public AjaxResult delete(@PathVariable("ids") List<Long> ids){
@@ -55,11 +60,13 @@
return AjaxResult.success(rulesRegulationsManagementService.removeBatchByIds(ids));
}
//瑙勫垯鏌ョ湅鏃舵柊澧為槄璇荤姸鎬�
+ @Log(title = "鏂板闃呰鐘舵��", businessType = BusinessType.INSERT)
@PostMapping("/addReadingStatus")
@Operation(summary = "鏂板闃呰鐘舵��")
public AjaxResult addReadingStatus(@RequestBody ReadingStatus readingStatus){
return AjaxResult.success(readingStatusMapper.insert(readingStatus));
}
+ @Log(title = "淇敼闃呰鐘舵��", businessType = BusinessType.UPDATE)
@PostMapping("/updateReadingStatus")
@Operation(summary = "淇敼闃呰鐘舵��")
public AjaxResult updateReadingStatus(@RequestBody ReadingStatus readingStatus){
@@ -77,6 +84,7 @@
}
@Operation(summary = "瑙勭珷鍒跺害绠$悊瀵煎嚭")
+ @Log(title = "瀵煎嚭瑙勭珷鍒跺害", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response) {
List<RulesRegulationsManagement> accountExpenses = rulesRegulationsManagementService.list();
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementFileController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementFileController.java
index 3f770f8..59c19bc 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementFileController.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementFileController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.collaborativeApproval.pojo.RulesRegulationsManagementFile;
import com.ruoyi.collaborativeApproval.service.RulesRegulationsManagementFileService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.quality.pojo.QualityInspectFile;
import com.ruoyi.quality.service.IQualityInspectFileService;
@@ -33,6 +35,7 @@
* @param rulesRegulationsManagementFile
* @return
*/
+ @Log(title = "瑙勭珷鍒跺害鏂囦欢", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody RulesRegulationsManagementFile rulesRegulationsManagementFile) {
return AjaxResult.success(rulesRegulationsManagementFileService.save(rulesRegulationsManagementFile));
@@ -43,6 +46,7 @@
* @param ids
* @return
*/
+ @Log(title = "瑙勭珷鍒跺害鏂囦欢", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) {
if(CollectionUtils.isEmpty(ids)){
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java
index dc6a64e..1b6ea12 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java
@@ -10,6 +10,7 @@
import com.ruoyi.collaborativeApproval.service.SealApplicationManagementService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.service.ISysNoticeService;
@@ -39,6 +40,7 @@
return AjaxResult.success(sealApplicationManagementService.listPage(page,sealApplicationManagement));
}
+ @Log(title = "鐢ㄧ珷鐢宠", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "鏂板")
public AjaxResult add(@RequestBody SealApplicationManagementDTO sealApplicationManagement){
@@ -57,6 +59,7 @@
return AjaxResult.success();
}
+ @Log(title = "鐢ㄧ珷鐢宠", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "淇敼")
public AjaxResult update(@RequestBody SealApplicationManagementDTO sealApplicationManagement){
@@ -68,6 +71,7 @@
return AjaxResult.success(sealApplicationManagementService.updateById(sealApplicationManagement));
}
+ @Log(title = "鐢ㄧ珷鐢宠", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎")
public AjaxResult delete(@PathVariable("ids") List<Long> ids){
@@ -80,6 +84,7 @@
return AjaxResult.success(sealApplicationManagementService.removeBatchByIds(ids));
}
+ @Log(title = "鐢ㄧ珷鐢宠", businessType = BusinessType.EXPORT)
@Operation(summary = "鐢ㄥ嵃鐢宠绠$悊瀵煎嚭")
@PostMapping("/export")
public void export(HttpServletResponse response) {
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/StaffContactsPersonalController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/StaffContactsPersonalController.java
index 3673208..8264252 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/controller/StaffContactsPersonalController.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/StaffContactsPersonalController.java
@@ -4,6 +4,8 @@
import com.ruoyi.collaborativeApproval.dto.StaffContactsPersonalDTO;
import com.ruoyi.collaborativeApproval.pojo.StaffContactsPersonal;
import com.ruoyi.collaborativeApproval.service.StaffContactsPersonalService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
@@ -21,12 +23,14 @@
return AjaxResult.success(staffContactsPersonalService.listPage(page, staffContactsPersonalDTO));
}
+ @Log(title = "鏂板鍛樺伐閫氳褰�", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "鏂板")
public AjaxResult add(@RequestBody StaffContactsPersonal staffContactsPersonal) {
return AjaxResult.success(staffContactsPersonalService.save(staffContactsPersonal));
}
+ @Log(title = "鍒犻櫎鍛樺伐閫氳褰�", businessType = BusinessType.DELETE)
@DeleteMapping("/delete/{id}")
@Operation(summary = "鍒犻櫎")
public AjaxResult delete(@PathVariable("id") Long id) {
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceDefectRecordController.java b/src/main/java/com/ruoyi/device/controller/DeviceDefectRecordController.java
index 1fd1c04..8424f60 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceDefectRecordController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceDefectRecordController.java
@@ -4,6 +4,8 @@
import com.ruoyi.device.dto.DeviceDefectRecordDto;
import com.ruoyi.device.pojo.DeviceDefectRecord;
import com.ruoyi.device.service.DeviceDefectRecordService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
@@ -29,16 +31,19 @@
return AjaxResult.success(deviceDefectRecordService.listPage(new Page<>(1,-1),deviceDefectRecordDto));
}
+ @Log(title = "鏂板璁惧缂洪櫡璁板綍", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "娣诲姞璁惧缂洪櫡璁板綍")
public AjaxResult add(@RequestBody DeviceDefectRecord deviceDefectRecord) {
return AjaxResult.success(deviceDefectRecordService.add(deviceDefectRecord));
}
+ @Log(title = "淇敼璁惧缂洪櫡璁板綍", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "淇敼璁惧缂洪櫡璁板綍")
public AjaxResult update(@RequestBody DeviceDefectRecord deviceDefectRecord) {
return AjaxResult.success(deviceDefectRecordService.updateByDDR(deviceDefectRecord));
}
+ @Log(title = "鍒犻櫎璁惧缂洪櫡璁板綍", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎璁惧缂洪櫡璁板綍")
public AjaxResult delete(@PathVariable Long id) {
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
index f4b807d..824ef6b 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
@@ -12,6 +12,8 @@
import com.ruoyi.device.pojo.DeviceMaintenance;
import com.ruoyi.device.service.IDeviceLedgerService;
import com.ruoyi.framework.aspectj.lang.annotation.Anonymous;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
@@ -35,32 +37,34 @@
private DeviceMaintenanceMapper deviceMaintenanceMapper;
-
@Operation(summary = "璁惧鍙拌处鍒楄〃")
@GetMapping("/page")
- public AjaxResult page(Page page , DeviceLedgerDto deviceLedger) {
- return AjaxResult.success(deviceLedgerService.queryPage(page,deviceLedger));
+ public AjaxResult page(Page page, DeviceLedgerDto deviceLedger) {
+ return AjaxResult.success(deviceLedgerService.queryPage(page, deviceLedger));
}
+ @Log(title = "鏂板璁惧鍙拌处", businessType = BusinessType.INSERT)
@PostMapping()
@Operation(summary = "娣诲姞璁惧鍙拌处")
- public AjaxResult add(@RequestBody DeviceLedger deviceLedger) {
-
- return deviceLedgerService.saveDeviceLedger(deviceLedger);
+ public AjaxResult add(@RequestBody DeviceLedgerDto deviceLedgerDto) {
+ return deviceLedgerService.saveDeviceLedger(deviceLedgerDto);
}
@Operation(summary = "鏍规嵁id鏌ヨ璁惧鍙拌处")
@GetMapping("/{id}")
public AjaxResult detail(@PathVariable Long id) {
- return AjaxResult.success(deviceLedgerService.getById(id));
+ DeviceLedgerDto deviceLedgerDto = deviceLedgerService.getDeviceLedgerDetail(id);
+ return AjaxResult.success(deviceLedgerDto);
}
- @PutMapping ()
+ @Log(title = "淇敼璁惧鍙拌处", businessType = BusinessType.UPDATE)
+ @PutMapping()
@Operation(summary = "淇敼璁惧鍙拌处")
- public AjaxResult update(@RequestBody DeviceLedger deviceLedger) {
- return deviceLedgerService.updateDeviceLedger(deviceLedger);
+ public AjaxResult update(@RequestBody DeviceLedgerDto deviceLedgerDto) {
+ return deviceLedgerService.updateDeviceLedger(deviceLedgerDto);
}
+ @Log(title = "鍒犻櫎璁惧鍙拌处", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
@Operation(summary = "鍒犻櫎璁惧鍙拌处")
public AjaxResult delete(@PathVariable("ids") ArrayList<Long> ids) {
@@ -71,12 +75,14 @@
return AjaxResult.success();
}
+ @Log(title = "瀵煎嚭璁惧鍙拌处", businessType = BusinessType.EXPORT)
@PostMapping("export")
@Operation(summary = "瀵煎嚭璁惧鍙拌处")
public void export(HttpServletResponse response, Long[] ids) {
- deviceLedgerService.export(response, ids);
+ deviceLedgerService.export(response, ids);
}
+ @Log(title = "涓嬭浇璁惧鍙拌处妯℃澘", businessType = BusinessType.EXPORT)
@Operation(summary = "涓嬭浇妯℃澘")
@PostMapping("/downloadTemplate")
public void downloadTemplate(HttpServletResponse response) {
@@ -84,6 +90,7 @@
util.importTemplateExcel(response, "璁惧瀵煎叆妯℃澘");
}
+ @Log(title = "瀵煎叆璁惧鍙拌处", businessType = BusinessType.IMPORT)
@PostMapping("/import")
@Operation(summary = "瀵煎叆璁惧鍙拌处")
public AjaxResult importData(MultipartFile file) throws IOException {
@@ -97,9 +104,9 @@
@GetMapping("getDeviceLedger")
@Operation(summary = "鑾峰彇璁惧鍙拌处")
- public AjaxResult getDeviceLedger( ) {
+ public AjaxResult getDeviceLedger() {
return AjaxResult.success(deviceLedgerService.list(new QueryWrapper<DeviceLedger>().lambda()
- .select(DeviceLedger::getId, DeviceLedger::getDeviceName,DeviceLedger::getDeviceModel)));
+ .select(DeviceLedger::getId, DeviceLedger::getDeviceName, DeviceLedger::getDeviceModel)));
}
@GetMapping("scanDevice")
@@ -108,8 +115,8 @@
public AjaxResult scanDevice(Long id) {
List<DeviceMaintenance> list = deviceMaintenanceMapper.list1(id);
DeviceLedger deviceLedger = deviceLedgerMapper.selectById1(id);
- if (list.size()>0){
- deviceLedger.setUpdateTime(list.get(0).getMaintenanceActuallyTime());//鏈�鍚庣淮鎶ゆ椂闂�
+ if (!list.isEmpty()) {
+ deviceLedger.setUpdateTime(list.getFirst().getMaintenanceActuallyTime());//鏈�鍚庣淮鎶ゆ椂闂�
}
deviceLedger.setCreateTime(deviceLedger.getUpdateTime().plusMonths(1));//涓嬫缁存姢鏃堕棿
return AjaxResult.success(deviceLedger);
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java b/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java
index e34fc37..51cef45 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java
@@ -7,6 +7,8 @@
import com.ruoyi.device.pojo.DeviceMaintenance;
import com.ruoyi.device.service.IDeviceLedgerService;
import com.ruoyi.device.service.IDeviceMaintenanceService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
@@ -32,6 +34,7 @@
return AjaxResult.success(deviceMaintenanceService.queryPage(page,deviceMaintenanceDto));
}
+ @Log(title = "鏂板璁惧淇濆吇", businessType = BusinessType.INSERT)
@PostMapping()
@Operation(summary = "娣诲姞璁惧淇濆吇")
public AjaxResult add(@RequestBody DeviceMaintenanceDto deviceMaintenance) {
@@ -47,6 +50,7 @@
return AjaxResult.success(deviceMaintenanceService.detailById(id));
}
+ @Log(title = "淇敼璁惧淇濆吇", businessType = BusinessType.UPDATE)
@PutMapping ()
@Operation(summary = "淇敼璁惧淇濆吇")
public AjaxResult update(@RequestBody DeviceMaintenanceDto deviceMaintenance) {
@@ -56,6 +60,7 @@
return deviceMaintenanceService.updateDeviceDeviceMaintenance(deviceMaintenance);
}
+ @Log(title = "鎵ц璁惧淇濆吇", businessType = BusinessType.UPDATE)
@PostMapping ("maintenance")
@Operation(summary = "淇敼璁惧淇濆吇")
public AjaxResult maintenance(@RequestBody DeviceMaintenanceDto deviceMaintenance) {
@@ -63,6 +68,7 @@
}
+ @Log(title = "鍒犻櫎璁惧淇濆吇", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
@Operation(summary = "鍒犻櫎璁惧淇濆吇")
public AjaxResult delete(@PathVariable("ids") Long[] ids) {
@@ -73,6 +79,7 @@
return AjaxResult.success();
}
+ @Log(title = "瀵煎嚭璁惧淇濆吇", businessType = BusinessType.EXPORT)
@PostMapping("export")
@Operation(summary = "瀵煎嚭璁惧淇濆吇")
public void export(HttpServletResponse response, Long[] ids) {
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceFileController.java b/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceFileController.java
index d92d334..8c077ba 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceFileController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceFileController.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.device.pojo.DeviceMaintenanceFile;
import com.ruoyi.device.service.DeviceMaintenanceFileService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.util.CollectionUtils;
@@ -34,6 +36,7 @@
* @param deviceMaintenanceFile
* @return
*/
+ @Log(title = "鏂板璁惧淇濆吇闄勪欢", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody DeviceMaintenanceFile deviceMaintenanceFile) {
return AjaxResult.success(deviceMaintenanceFileService.save(deviceMaintenanceFile));
@@ -44,6 +47,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎璁惧淇濆吇闄勪欢", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) {
if(CollectionUtils.isEmpty(ids)){
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
index 7df7c26..ace3b17 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
@@ -5,6 +5,8 @@
import com.ruoyi.device.dto.DeviceRepairDto;
import com.ruoyi.device.pojo.DeviceRepair;
import com.ruoyi.device.service.IDeviceRepairService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
@@ -28,6 +30,7 @@
return AjaxResult.success(deviceRepairService.queryPage(page,deviceRepairDto));
}
+ @Log(title = "鏂板璁惧鎶ヤ慨", businessType = BusinessType.INSERT)
@PostMapping()
@Operation(summary = "娣诲姞璁惧鎶ヤ慨")
public AjaxResult add( @RequestBody DeviceRepairDto deviceRepairDto) {
@@ -40,24 +43,28 @@
return AjaxResult.success(deviceRepairService.detailById(id));
}
+ @Log(title = "淇敼璁惧鎶ヤ慨", businessType = BusinessType.UPDATE)
@PutMapping ()
@Operation(summary = "淇敼璁惧鎶ヤ慨")
public AjaxResult update( @RequestBody DeviceRepairDto deviceRepairDto) {
return deviceRepairService.updateDeviceRepair(deviceRepairDto);
}
+ @Log(title = "璁惧缁翠慨", businessType = BusinessType.UPDATE)
@PostMapping ("/repair")
@Operation(summary = "璁惧缁翠慨")
public AjaxResult repair( @RequestBody DeviceRepairDto deviceRepairDto) {
return deviceRepairService.confirmRepair(deviceRepairDto);
}
+ @Log(title = "璁惧鎶ヤ慨楠屾敹", businessType = BusinessType.UPDATE)
@PostMapping ("/acceptance")
@Operation(summary = "璁惧鎶ヤ慨楠屾敹瀹℃壒")
public AjaxResult acceptance(@RequestBody DeviceRepairDto deviceRepairDto) {
return deviceRepairService.approveRepairAcceptance(deviceRepairDto);
}
+ @Log(title = "鍒犻櫎璁惧鎶ヤ慨", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
@Operation(summary = "鍒犻櫎璁惧鎶ヤ慨")
public AjaxResult delete(@PathVariable("ids") Long[] ids) {
@@ -68,6 +75,7 @@
return AjaxResult.success();
}
+ @Log(title = "瀵煎嚭璁惧鎶ヤ慨", businessType = BusinessType.EXPORT)
@PostMapping("export")
@Operation(summary = "瀵煎嚭璁惧鎶ヤ慨")
public void export(HttpServletResponse response, Long[] ids) {
diff --git a/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java b/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
index 79e0aff..8ceb915 100644
--- a/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
+++ b/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
@@ -12,6 +12,9 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.util.List;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
/**
* 璁惧鍙拌处瀹炰綋绫�
@@ -55,6 +58,20 @@
private String supplierName;
/**
+ * 璁惧闄勪欢(鐢ㄤ簬鎺ユ敹)
+ */
+ @TableField(exist = false)
+ @Schema(description = "璁惧闄勪欢鎺ユ敹鍒楄〃")
+ private List<StorageBlobDTO> storageBlobDTOs;
+
+ /**
+ * 璁惧闄勪欢(鐢ㄤ簬杩斿洖)
+ */
+ @TableField(exist = false)
+ @Schema(description = "璁惧闄勪欢灞曠ず鍒楄〃")
+ private List<StorageBlobVO> storageBlobVOs;
+
+ /**
* 鍗曚綅
*/
private String unit;
diff --git a/src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java b/src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java
index 350a09d..3fedf2c 100644
--- a/src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java
+++ b/src/main/java/com/ruoyi/device/pojo/MaintenanceTask.java
@@ -62,8 +62,8 @@
@Schema(description = "鏈�鍚庢墽琛屾椂闂�")
private LocalDateTime lastExecutionTime;
- @Schema(description = "鏄惁婵�娲�")
- private boolean isActive;
+ @Schema(description = "鏄惁婵�娲�, 1=鍚敤, 0=鍋滅敤")
+ private Integer isActive;
@Schema(description = "澶囨敞")
@Excel(name = "澶囨敞")
diff --git a/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java b/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
index d34ea65..78dfcac 100644
--- a/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
+++ b/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
@@ -14,9 +14,11 @@
public interface IDeviceLedgerService extends IService<DeviceLedger> {
IPage<DeviceLedgerDto> queryPage(Page page, DeviceLedgerDto deviceLedger);
- AjaxResult saveDeviceLedger(DeviceLedger deviceLedger);
+ AjaxResult saveDeviceLedger(DeviceLedgerDto deviceLedgerDto);
- AjaxResult updateDeviceLedger(DeviceLedger deviceLedger);
+ AjaxResult updateDeviceLedger(DeviceLedgerDto deviceLedgerDto);
+
+ DeviceLedgerDto getDeviceLedgerDetail(Long id);
void export(HttpServletResponse response, Long[] ids);
diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
index 4f6ebd6..154923d 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -12,6 +12,9 @@
import com.ruoyi.device.execl.DeviceLedgerExeclDto;
import com.ruoyi.device.mapper.DeviceLedgerMapper;
import com.ruoyi.device.pojo.DeviceLedger;
+import com.ruoyi.basic.dto.StorageAttachmentDTO;
+import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.service.StorageAttachmentService;
import com.ruoyi.device.service.IDeviceLedgerService;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysUser;
@@ -36,6 +39,7 @@
private final DeviceLedgerMapper deviceLedgerMapper;
private final SysUserMapper sysUserMapper;
+ private final StorageAttachmentService storageAttachmentService;
@Override
public IPage<DeviceLedgerDto> queryPage(Page page, DeviceLedgerDto deviceLedger) {
@@ -44,25 +48,61 @@
}
@Override
- public AjaxResult saveDeviceLedger(DeviceLedger deviceLedger) {
+ public AjaxResult saveDeviceLedger(DeviceLedgerDto deviceLedgerDto) {
LambdaQueryWrapper<DeviceLedger> deviceLedgerLambdaQueryWrapper = new LambdaQueryWrapper<>();
- deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName,deviceLedger.getDeviceName());
+ deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName,deviceLedgerDto.getDeviceName());
if (this.count(deviceLedgerLambdaQueryWrapper) > 0) {
return AjaxResult.error("璁惧鍚嶇О宸插瓨鍦�");
}
+ DeviceLedger deviceLedger = new DeviceLedger();
+ BeanUtils.copyProperties(deviceLedgerDto, deviceLedger);
boolean save = this.save(deviceLedger);
if (save){
+ if (deviceLedgerDto.getStorageBlobDTOs() != null) {
+ StorageAttachmentDTO attachmentDTO = new StorageAttachmentDTO();
+ attachmentDTO.setApplication("image");
+ attachmentDTO.setRecordType(RecordTypeEnum.DEVICE_LEDGER.getType());
+ attachmentDTO.setRecordId(deviceLedger.getId());
+ attachmentDTO.setStorageBlobDTOs(deviceLedgerDto.getStorageBlobDTOs());
+ storageAttachmentService.saveStorageAttachment(attachmentDTO);
+ }
return AjaxResult.success();
}
return AjaxResult.error();
}
@Override
- public AjaxResult updateDeviceLedger(DeviceLedger deviceLedger) {
+ public AjaxResult updateDeviceLedger(DeviceLedgerDto deviceLedgerDto) {
+ DeviceLedger deviceLedger = new DeviceLedger();
+ BeanUtils.copyProperties(deviceLedgerDto, deviceLedger);
if (this.updateById(deviceLedger)) {
+ if (deviceLedgerDto.getStorageBlobDTOs() != null) {
+ StorageAttachmentDTO attachmentDTO = new StorageAttachmentDTO();
+ attachmentDTO.setApplication("image");
+ attachmentDTO.setRecordType(RecordTypeEnum.DEVICE_LEDGER.getType());
+ attachmentDTO.setRecordId(deviceLedger.getId());
+ attachmentDTO.setStorageBlobDTOs(deviceLedgerDto.getStorageBlobDTOs());
+ storageAttachmentService.saveStorageAttachment(attachmentDTO);
+ }
return AjaxResult.success();
}
return AjaxResult.error();
+ }
+
+ @Override
+ public DeviceLedgerDto getDeviceLedgerDetail(Long id) {
+ DeviceLedger deviceLedger = this.getById(id);
+ if (deviceLedger != null) {
+ DeviceLedgerDto deviceLedgerDto = new DeviceLedgerDto();
+ BeanUtils.copyProperties(deviceLedger, deviceLedgerDto);
+ StorageAttachmentDTO dto = new StorageAttachmentDTO();
+ dto.setRecordType(RecordTypeEnum.DEVICE_LEDGER.getType());
+ dto.setRecordId(id);
+ dto.setApplication("image");
+ deviceLedgerDto.setStorageBlobVOs(storageAttachmentService.list(dto));
+ return deviceLedgerDto;
+ }
+ return null;
}
@Override
@@ -82,9 +122,7 @@
util.exportExcel(response, deviceLedgerExeclDtos, "璁惧鍙拌处瀵煎嚭");
}else {
ArrayList<Long> arrayList = new ArrayList<>();
- Arrays.stream(ids).map(id -> {
- return arrayList.add( id);
- });
+ Arrays.stream(ids).map(arrayList::add);
List<DeviceLedger> supplierManageList = deviceLedgerMapper.selectBatchIds(arrayList);
ArrayList<DeviceLedgerExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
supplierManageList.stream().forEach(deviceLedger -> {
diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java
index ec7a8e3..3913b8b 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java
@@ -25,13 +25,25 @@
private final Scheduler scheduler;
/**
- * 娣诲姞鏂颁换鍔″埌璋冨害鍣�
+ * 娣诲姞鎴栨洿鏂颁换鍔″埌璋冨害鍣�
*/
public void scheduleMaintenanceTask(MaintenanceTask task){
try {
JobDetail jobDetail = buildJobDetail(task);
Trigger trigger = buildJobTrigger(task, jobDetail);
- scheduler.scheduleJob(jobDetail, trigger);
+
+ // 妫�鏌ヨЕ鍙戝櫒鏄惁宸插瓨鍦�
+ TriggerKey triggerKey = trigger.getKey();
+ Trigger existingTrigger = scheduler.getTrigger(triggerKey);
+
+ if (existingTrigger != null) {
+ // 瑙﹀彂鍣ㄥ凡瀛樺湪锛屾洿鏂板畠
+ scheduler.rescheduleJob(triggerKey, trigger);
+ } else {
+ // 瑙﹀彂鍣ㄤ笉瀛樺湪锛屽厛纭繚 Job 瀛樺湪锛岀劧鍚庤皟搴﹁Е鍙戝櫒
+ scheduler.addJob(jobDetail, true);
+ scheduler.scheduleJob(trigger);
+ }
}catch (SchedulerException e){
log.error("SchedulerException scheduleMaintenanceTask ERROR",e);
throw new RuntimeException(e);
@@ -45,26 +57,41 @@
try{
TriggerKey triggerKey = new TriggerKey("triggerMaintenanceTask_" + task.getId());
- // 鑾峰彇鐜版湁瑙﹀彂鍣ㄥ苟杞崲涓� CronTrigger
+ // 鑾峰彇鐜版湁瑙﹀彂鍣�
Trigger oldTrigger = scheduler.getTrigger(triggerKey);
+
+ // 鏋勫缓鏂扮殑 JobDetail 鍜� Trigger
+ JobDetail jobDetail = buildJobDetail(task);
+ Trigger newTrigger = buildJobTrigger(task, jobDetail);
+
+ if (oldTrigger == null) {
+ // 瑙﹀彂鍣ㄤ笉瀛樺湪锛岃鏄庝换鍔′箣鍓嶈鍒犻櫎杩�
+ // 鍏堢‘淇� Job 瀛樺湪锛岀劧鍚庤皟搴﹁Е鍙戝櫒
+ scheduler.addJob(jobDetail, true);
+ scheduler.scheduleJob(newTrigger);
+ return;
+ }
+
+ // 瑙﹀彂鍣ㄥ瓨鍦紝鐩存帴鏇存柊
if (!(oldTrigger instanceof CronTrigger)) {
throw new SchedulerException("Existing trigger is not a CronTrigger");
}
- // 3. 鏋勫缓CronTrigger锛岀‘淇濇寔涔呭寲閰嶇疆
- CronTrigger newTrigger = TriggerBuilder.newTrigger()
- .withIdentity(triggerKey) // 鍞竴鏍囪瘑锛岀敤浜庢寔涔呭寲瀛樺偍
- .withDescription(task.getTaskName() + "_TRIGGER") // 瑙﹀彂鍣ㄦ弿杩�
- .forJob(oldTrigger.getJobKey()) // 鍏宠仈瀵瑰簲鐨凧ob
+ // 鏋勫缓鏂扮殑 CronTrigger
+ CronTrigger cronTrigger = TriggerBuilder.newTrigger()
+ .withIdentity(triggerKey)
+ .withDescription(task.getTaskName() + "_TRIGGER")
+ .forJob(oldTrigger.getJobKey())
.withSchedule(CronScheduleBuilder
- .cronSchedule(convertToCronExpression(task)) // 閿欒繃鎵ц鏃剁殑绛栫暐锛堟牴鎹笟鍔¤皟鏁达級
+ .cronSchedule(convertToCronExpression(task))
+ .withMisfireHandlingInstructionDoNothing()
)
- // 4. 璁剧疆寮�濮嬫椂闂达紙鑻ヤ负null鍒欑珛鍗崇敓鏁堬級
.startAt(task.getNextExecutionTime() != null
? Date.from(task.getNextExecutionTime().atZone(ZoneId.systemDefault()).toInstant())
: new Date())
.build();
- scheduler.rescheduleJob(triggerKey, newTrigger);
+
+ scheduler.rescheduleJob(triggerKey, cronTrigger);
}catch (SchedulerException e){
log.error("SchedulerException rescheduleMaintenanceTask ERROR",e);
throw new RuntimeException(e);
@@ -93,6 +120,7 @@
public void unscheduleMaintenanceTask(Long taskId){
try {
JobKey jobKey = new JobKey("MaintenanceTask_" + taskId);
+ // 鍒犻櫎 Job 浼氳嚜鍔ㄥ垹闄ゅ叧鑱旂殑 Trigger
scheduler.deleteJob(jobKey);
}catch (SchedulerException e){
log.error("SchedulerException unscheduleMaintenanceTask ERROR",e);
diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
index 3aaac94..c666f3f 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
@@ -67,7 +67,6 @@
@Override
public AjaxResult add(MaintenanceTask maintenanceTask) {
- maintenanceTask.setActive(true);
// 璁$畻棣栨鎵ц鏃堕棿
TimingTask task = new TimingTask();
task.setFrequencyType(maintenanceTask.getFrequencyType());
@@ -76,7 +75,10 @@
maintenanceTask.setNextExecutionTime(firstExecutionTime);
int insert = maintenanceTaskMapper.insert(maintenanceTask);
if (insert > 0) {
- maintenanceTaskScheduler.scheduleMaintenanceTask(maintenanceTask);
+ // 鍙湁褰� isActive 涓� 1 鏃舵墠娣诲姞鍒板畾鏃朵换鍔¤皟搴﹀櫒
+ if (maintenanceTask.getIsActive() != null && maintenanceTask.getIsActive() == 1) {
+ maintenanceTaskScheduler.scheduleMaintenanceTask(maintenanceTask);
+ }
}
return AjaxResult.success("娣诲姞鎴愬姛");
}
@@ -87,22 +89,50 @@
if (maintenanceTask1 == null) {
return AjaxResult.warn("娌℃湁姝ゆ暟鎹�");
}
+
+ // 淇濆瓨鏃х殑 isActive 鐘舵��
+ Integer oldIsActive = maintenanceTask1.getIsActive();
+ Integer newIsActive = maintenanceTask.getIsActive();
+
BeanUtils.copyProperties(maintenanceTask, maintenanceTask1);
int update = maintenanceTaskMapper.updateById(maintenanceTask1);
if (update > 0) {
- maintenanceTaskScheduler.rescheduleMaintenanceTask(maintenanceTask1);
+ // 澶勭悊 isActive 鐘舵�佸彉鍖�
+ if (newIsActive != null && newIsActive == 1) {
+ // 鏂扮姸鎬佷负鍚敤锛氭坊鍔犲埌瀹氭椂浠诲姟璋冨害鍣�
+ if (oldIsActive == null || oldIsActive != 1) {
+ // 浠庢湭鍚敤鍙樹负鍚敤锛屾坊鍔犲埌璋冨害鍣�
+ maintenanceTaskScheduler.scheduleMaintenanceTask(maintenanceTask1);
+ } else {
+ // 宸茬粡鍚敤锛屾洿鏂拌皟搴﹀櫒涓殑浠诲姟
+ maintenanceTaskScheduler.rescheduleMaintenanceTask(maintenanceTask1);
+ }
+ } else {
+ // 鏂扮姸鎬佷负鍋滅敤锛氫粠瀹氭椂浠诲姟璋冨害鍣ㄤ腑绉婚櫎
+ if (oldIsActive != null && oldIsActive == 1) {
+ maintenanceTaskScheduler.unscheduleMaintenanceTask(maintenanceTask1.getId());
+ }
+ }
}
return AjaxResult.success("鏇存柊鎴愬姛");
}
@Override
public AjaxResult delete(List<Long> ids) {
+ // 鍏堜粠瀹氭椂浠诲姟璋冨害鍣ㄤ腑绉婚櫎鎵�鏈夊緟鍒犻櫎鐨勪换鍔�
+ ids.forEach(id -> {
+ try {
+ maintenanceTaskScheduler.unscheduleMaintenanceTask(id);
+ } catch (Exception e) {
+ log.error("鍒犻櫎瀹氭椂浠诲姟璋冨害澶辫触, id: {}", id, e);
+ }
+ });
+
+ // 鍐嶄粠鏁版嵁搴撲腑鍒犻櫎璁板綍
int delete = maintenanceTaskMapper.deleteBatchIds(ids);
if (delete > 0) {
- ids.forEach(id -> {
- maintenanceTaskScheduler.unscheduleMaintenanceTask(id);
- });
+ return AjaxResult.success("鍒犻櫎鎴愬姛");
}
- return AjaxResult.success("鍒犻櫎鎴愬姛");
+ return AjaxResult.error("鍒犻櫎澶辫触");
}
}
diff --git a/src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java b/src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java
index be8dda5..8c61126 100644
--- a/src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java
+++ b/src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.inspectiontask.dto.InspectionTaskDto;
@@ -43,8 +45,9 @@
/**
* 瀵煎嚭
*/
- @PostMapping("/export")
+ @Log(title = "妫�楠屼换鍔�", businessType = BusinessType.EXPORT)
@Operation(summary = "瀵煎嚭瀹氭椂浠诲姟璁板綍")
+ @PostMapping("/export")
public void export(HttpServletResponse response) {
Page page = new Page<>(-1, -1);
InspectionTaskDto timingTask = new InspectionTaskDto();
@@ -56,8 +59,9 @@
/**
* 宸℃浠诲姟琛ㄦ柊澧炰慨鏀�
*/
- @PostMapping("/addOrEditInspectionTask")
+ @Log(title = "妫�楠屼换鍔�", businessType = BusinessType.INSERT)
@Operation(summary = "宸℃浠诲姟琛ㄦ柊澧炰慨鏀�")
+ @PostMapping("/addOrEditInspectionTask")
@Transactional(rollbackFor = Exception.class)
public R addOrEditInspectionTask(@RequestBody InspectionTaskDto inspectionTaskDto) {
return R.ok(inspectionTaskService.addOrEditInspectionTask(inspectionTaskDto));
@@ -66,8 +70,9 @@
/**
* 宸℃浠诲姟琛ㄥ垹闄�
*/
- @DeleteMapping("/delInspectionTask")
+ @Log(title = "妫�楠屼换鍔�", businessType = BusinessType.DELETE)
@Operation(summary = "宸℃浠诲姟琛ㄥ垹闄�")
+ @DeleteMapping("/delInspectionTask")
@Transactional(rollbackFor = Exception.class)
public R remove(@RequestBody Long[] ids) {
return R.ok(inspectionTaskService.delByIds(ids));
diff --git a/src/main/java/com/ruoyi/inspectiontask/controller/QrCodeController.java b/src/main/java/com/ruoyi/inspectiontask/controller/QrCodeController.java
index 9baaf09..80089ca 100644
--- a/src/main/java/com/ruoyi/inspectiontask/controller/QrCodeController.java
+++ b/src/main/java/com/ruoyi/inspectiontask/controller/QrCodeController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.inspectiontask.dto.QrCodeDto;
@@ -37,8 +39,9 @@
/**
* 浜岀淮鐮佺鐞嗚〃鏂板淇敼
*/
- @PostMapping("/addOrEditQrCode")
+ @Log(title = "浜岀淮鐮�", businessType = BusinessType.INSERT)
@Operation(summary = "浜岀淮鐮佺鐞嗚〃鏂板淇敼")
+ @PostMapping("/addOrEditQrCode")
public R<Long> addOrEditQrCode(@RequestBody QrCodeDto qrCodeDto) {
return R.ok(qrCodeService.addOrEditQrCode(qrCodeDto));
}
@@ -46,8 +49,9 @@
/**
* 浜岀淮鐮佺鐞嗚〃鍒犻櫎
*/
- @DeleteMapping("/delQrCode")
+ @Log(title = "浜岀淮鐮�", businessType = BusinessType.DELETE)
@Operation(summary = "浜岀淮鐮佺鐞嗚〃鍒犻櫎")
+ @DeleteMapping("/delQrCode")
public R remove(@RequestBody Long[] ids) {
return R.ok(qrCodeService.delByIds(ids));
}
diff --git a/src/main/java/com/ruoyi/inspectiontask/controller/QrCodeScanRecordController.java b/src/main/java/com/ruoyi/inspectiontask/controller/QrCodeScanRecordController.java
index f597205..a2cdc67 100644
--- a/src/main/java/com/ruoyi/inspectiontask/controller/QrCodeScanRecordController.java
+++ b/src/main/java/com/ruoyi/inspectiontask/controller/QrCodeScanRecordController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.inspectiontask.dto.QrCodeScanRecordDto;
@@ -38,8 +40,9 @@
/**
* 浜岀淮鐮佹壂鐮佽褰曡〃鏂板淇敼
*/
- @PostMapping("/addOrEditQrCodeRecord")
+ @Log(title = "浜岀淮鐮佹壂鎻忚褰�", businessType = BusinessType.INSERT)
@Operation(summary = "浜岀淮鐮佹壂鐮佽褰曡〃鏂板淇敼")
+ @PostMapping("/addOrEditQrCodeRecord")
public R addOrEditQrCodeRecord(@RequestBody QrCodeScanRecordDto qrCodeScanRecordDto) {
return R.ok(qrCodeScanRecordService.addOrEditQrCodeRecord(qrCodeScanRecordDto));
}
@@ -47,8 +50,9 @@
/**
* 浜岀淮鐮佹壂鐮佽褰曡〃鍒犻櫎
*/
- @DeleteMapping("/delSalesRecord")
+ @Log(title = "浜岀淮鐮佹壂鎻忚褰�", businessType = BusinessType.DELETE)
@Operation(summary = "浜岀淮鐮佹壂鐮佽褰曡〃鍒犻櫎")
+ @DeleteMapping("/delSalesRecord")
public R remove(@RequestBody Long[] ids) {
return R.ok(qrCodeScanRecordService.delByIds(ids));
}
diff --git a/src/main/java/com/ruoyi/inspectiontask/controller/TimingTaskController.java b/src/main/java/com/ruoyi/inspectiontask/controller/TimingTaskController.java
index ad2e338..d3baf78 100644
--- a/src/main/java/com/ruoyi/inspectiontask/controller/TimingTaskController.java
+++ b/src/main/java/com/ruoyi/inspectiontask/controller/TimingTaskController.java
@@ -42,6 +42,7 @@
/**
* 瀵煎嚭
*/
+ @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@Operation(summary = "瀵煎嚭瀹氭椂浠诲姟")
public void export(HttpServletResponse response) {
@@ -55,9 +56,9 @@
/**
* 瀹氭椂宸℃浠诲姟琛ㄦ柊澧炰慨鏀�
*/
+ @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.INSERT)
@PostMapping("/addOrEditTimingTask")
@Operation(summary = "鏂板淇敼瀹氭椂浠诲姟")
- @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.INSERT)
public R addOrEditTimingTask(@RequestBody TimingTaskDto timingTaskDto) throws SchedulerException {
return R.ok(timingTaskService.addOrEditTimingTask(timingTaskDto));
}
@@ -65,9 +66,9 @@
/**
* 瀹氭椂宸℃浠诲姟琛ㄥ垹闄�
*/
+ @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.DELETE)
@DeleteMapping("/delTimingTask")
@Operation(summary = "鍒犻櫎瀹氭椂浠诲姟")
- @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.DELETE)
public R remove(@RequestBody Long[] ids) {
return R.ok(timingTaskService.delByIds(ids));
}
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
index a6179f6..63289a7 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
@@ -35,6 +35,17 @@
// 鑾峰彇鐜版湁瑙﹀彂鍣ㄥ苟杞崲涓� CronTrigger
Trigger oldTrigger = scheduler.getTrigger(triggerKey);
+ if (oldTrigger == null) {
+ JobKey jobKey = new JobKey("timingTask_" + task.getId());
+ JobDetail jobDetail = scheduler.getJobDetail(jobKey);
+ if (jobDetail != null) {
+ Trigger trigger = buildJobTrigger(task, jobDetail);
+ scheduler.scheduleJob(trigger);
+ } else {
+ scheduleTimingTask(task);
+ }
+ return;
+ }
if (!(oldTrigger instanceof CronTrigger)) {
throw new SchedulerException("Existing trigger is not a CronTrigger");
}
@@ -144,18 +155,13 @@
// 浣跨敤switch纭繚鏉′欢浜掓枼
String frequencyType = task.getFrequencyType().toUpperCase(); // 缁熶竴杞负澶у啓姣旇緝
- switch (frequencyType) {
- case "DAILY":
- return convertDailyToCron(task.getFrequencyDetail());
- case "WEEKLY":
- return convertWeeklyToCron(task.getFrequencyDetail());
- case "MONTHLY":
- return convertMonthlyToCron(task.getFrequencyDetail());
- case "QUARTERLY":
- return convertQuarterlyToCron(task.getFrequencyDetail());
- default:
- throw new IllegalArgumentException("涓嶆敮鎸佺殑棰戠巼绫诲瀷: " + task.getFrequencyType());
- }
+ return switch (frequencyType) {
+ case "DAILY" -> convertDailyToCron(task.getFrequencyDetail());
+ case "WEEKLY" -> convertWeeklyToCron(task.getFrequencyDetail());
+ case "MONTHLY" -> convertMonthlyToCron(task.getFrequencyDetail());
+ case "QUARTERLY" -> convertQuarterlyToCron(task.getFrequencyDetail());
+ default -> throw new IllegalArgumentException("涓嶆敮鎸佺殑棰戠巼绫诲瀷: " + task.getFrequencyType());
+ };
}
// 姣忔棩浠诲姟杞崲
diff --git a/src/main/java/com/ruoyi/measuringinstrumentledger/controller/SparePartsRequisitionRecordController.java b/src/main/java/com/ruoyi/measuringinstrumentledger/controller/SparePartsRequisitionRecordController.java
index 26195a4..a37f99f 100644
--- a/src/main/java/com/ruoyi/measuringinstrumentledger/controller/SparePartsRequisitionRecordController.java
+++ b/src/main/java/com/ruoyi/measuringinstrumentledger/controller/SparePartsRequisitionRecordController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.measuringinstrumentledger.dto.SparePartsRequisitionRecordDto;
import com.ruoyi.measuringinstrumentledger.service.SparePartsRequisitionRecordService;
@@ -29,6 +31,7 @@
@GetMapping("/listPage")
@Operation(summary = "澶囦欢鍒嗙被-鍒嗛〉鏌ヨ")
+ @Log(title = "澶囦欢棰嗙敤璁板綍-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
public AjaxResult listPage(Page page, SparePartsRequisitionRecordDto sparePartsRequisitionRecordDto){
IPage<SparePartsRequisitionRecordDto> listPage = sparePartsRequisitionRecordService.listPage(page, sparePartsRequisitionRecordDto);
return AjaxResult.success(listPage);
diff --git a/src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java b/src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java
index 3588d6c..48f5a59 100644
--- a/src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java
+++ b/src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java
@@ -44,6 +44,7 @@
@PostMapping("/add")
@Operation(summary = "鍔炲叕鐗╄祫-娣诲姞")
+ @Log(title = "鍔炲叕鐗╄祫-娣诲姞", businessType = BusinessType.INSERT)
@Transactional(rollbackFor = Exception.class)
public AjaxResult add(@RequestBody OfficeSupplies officeSupplies) {
// 鎸夌収褰撳墠鏃堕棿yyyyMMdd + 褰撳ぉ鏂板鏁伴噺 + 1鐢熸垚缂栧彿
@@ -60,6 +61,7 @@
@PostMapping("/update")
@Operation(summary = "鍔炲叕鐗╄祫-淇敼")
+ @Log(title = "鍔炲叕鐗╄祫-淇敼", businessType = BusinessType.UPDATE)
@Transactional(rollbackFor = Exception.class)
public AjaxResult update(@RequestBody OfficeSupplies officeSupplies) {
return officeSuppliesService.updateById(officeSupplies) ? success() : error();
@@ -67,6 +69,7 @@
@DeleteMapping("/delete")
@Operation(summary = "鍔炲叕鐗╄祫-鍒犻櫎")
+ @Log(title = "鍔炲叕鐗╄祫-鍒犻櫎", businessType = BusinessType.DELETE)
@Transactional(rollbackFor = Exception.class)
public AjaxResult delete(@RequestBody List<Long> ids) {
if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
diff --git a/src/main/java/com/ruoyi/other/controller/PdaVersionController.java b/src/main/java/com/ruoyi/other/controller/PdaVersionController.java
index 326db6a..f97e05f 100644
--- a/src/main/java/com/ruoyi/other/controller/PdaVersionController.java
+++ b/src/main/java/com/ruoyi/other/controller/PdaVersionController.java
@@ -1,6 +1,8 @@
package com.ruoyi.other.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.other.dto.PdaVersionDTO;
import com.ruoyi.other.pojo.PdaVersion;
@@ -23,6 +25,7 @@
}
@Operation(summary = "娣诲姞鐗堟湰")
+ @Log(title = "PDA鐗堟湰-娣诲姞", businessType = BusinessType.INSERT)
@PostMapping("/add")
public R add(@RequestBody PdaVersionDTO pdaVersion) {
return R.ok(pdaVersionService.add(pdaVersion));
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/GasTankWarningController.java b/src/main/java/com/ruoyi/procurementrecord/controller/GasTankWarningController.java
index ea214c2..7fe7c33 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/GasTankWarningController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/GasTankWarningController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.procurementrecord.pojo.GasTankWarning;
import com.ruoyi.procurementrecord.service.GasTankWarningService;
@@ -23,23 +25,26 @@
return AjaxResult.success(gasTankWarningService.listPage(page, gasTankWarning));
}
+ @Log(title = "鏂板姘旂摱棰勮", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody GasTankWarning gasTankWarning) {
return AjaxResult.success(gasTankWarningService.save(gasTankWarning));
}
+ @Log(title = "淇敼姘旂摱棰勮", businessType = BusinessType.UPDATE)
@PostMapping("update")
public AjaxResult update(@RequestBody GasTankWarning gasTankWarning) {
return AjaxResult.success(gasTankWarningService.updateById(gasTankWarning));
}
+ @Log(title = "鍒犻櫎姘旂摱棰勮", businessType = BusinessType.DELETE)
@DeleteMapping("delete")
public AjaxResult delete(@RequestBody List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
return AjaxResult.success(gasTankWarningService.removeByIds(ids));
}
- //瀵煎嚭
+ @Log(title = "瀵煎嚭姘旂摱棰勮", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, @RequestParam(name = "ids", required = false) List<Long> ids) {
gasTankWarningService.export(response, ids);
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/InboundManagementController.java b/src/main/java/com/ruoyi/procurementrecord/controller/InboundManagementController.java
index 0a2919d..7fdc5ca 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/InboundManagementController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/InboundManagementController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.procurementrecord.pojo.InboundManagement;
@@ -35,6 +37,7 @@
return AjaxResult.success(result);
}
+ @Log(title = "鏂板鍒拌揣绠$悊", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "鍒拌揣绠$悊-娣诲姞")
@Transactional(rollbackFor = Exception.class)
@@ -44,6 +47,7 @@
return result ? AjaxResult.success() : AjaxResult.error();
}
+ @Log(title = "淇敼鍒拌揣绠$悊", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "鍒拌揣绠$悊-淇敼")
@Transactional(rollbackFor = Exception.class)
@@ -52,6 +56,7 @@
return result ? AjaxResult.success() : AjaxResult.error();
}
+ @Log(title = "鍒犻櫎鍒拌揣绠$悊", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
@Operation(summary = "鍒拌揣绠$悊-鍒犻櫎")
@Transactional(rollbackFor = Exception.class)
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java
index bb14493..ebe14f1 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java
@@ -1,5 +1,7 @@
package com.ruoyi.procurementrecord.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.procurementrecord.mapper.ProcurementExceptionRecordMapper;
@@ -21,12 +23,14 @@
private ProcurementExceptionRecordMapper procurementExceptionRecordMapper;
+ @Log(title = "鏂板閲囪喘寮傚父璁板綍", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Transactional
public AjaxResult add(@RequestBody ProcurementExceptionRecord procurementExceptionRecord) {
return AjaxResult.success(procurementExceptionRecordMapper.insert(procurementExceptionRecord));
}
+ @Log(title = "淇敼閲囪喘寮傚父璁板綍", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Transactional
public AjaxResult updatePro(@RequestBody ProcurementExceptionRecord procurementExceptionRecord) {
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPlanController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPlanController.java
index 1d442a9..f156c94 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPlanController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPlanController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.procurementrecord.pojo.ProcurementPlan;
@@ -33,6 +35,7 @@
return AjaxResult.success(result);
}
+ @Log(title = "鏂板閲囪喘璁″垝", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "閲囪喘璁″垝-娣诲姞")
public AjaxResult add(@RequestBody ProcurementPlan procurementPlan){
@@ -40,6 +43,7 @@
return result ? AjaxResult.success() : AjaxResult.error();
}
+ @Log(title = "淇敼閲囪喘璁″垝", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "閲囪喘璁″垝-淇敼")
public AjaxResult update(@RequestBody ProcurementPlan procurementPlan){
@@ -47,6 +51,7 @@
return result ? AjaxResult.success() : AjaxResult.error();
}
+ @Log(title = "鍒犻櫎閲囪喘璁″垝", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
@Operation(summary = "閲囪喘璁″垝-鍒犻櫎")
public AjaxResult del(@RequestBody List<Long> ids){
@@ -54,10 +59,7 @@
return result ? AjaxResult.success() : AjaxResult.error();
}
- /**
- * 瀵煎嚭
- * @param response
- */
+ @Log(title = "瀵煎嚭閲囪喘璁″垝", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response) {
procurementPlanService.export(response);
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPriceManagementController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPriceManagementController.java
index 678446c..cc9f74c 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPriceManagementController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementPriceManagementController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.procurementrecord.pojo.ProcurementPriceManagement;
@@ -34,6 +36,7 @@
return AjaxResult.success(result);
}
+ @Log(title = "鏂板閲囪喘浠锋牸绠$悊", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "閲囪喘浠锋牸绠$悊-娣诲姞")
@Transactional(rollbackFor = Exception.class)
@@ -42,6 +45,7 @@
return result ? AjaxResult.success() : AjaxResult.error();
}
+ @Log(title = "淇敼閲囪喘浠锋牸绠$悊", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "閲囪喘浠锋牸绠$悊-淇敼")
@Transactional(rollbackFor = Exception.class)
@@ -50,6 +54,7 @@
return result ? AjaxResult.success() : AjaxResult.error();
}
+ @Log(title = "鍒犻櫎閲囪喘浠锋牸绠$悊", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
@Operation(summary = "閲囪喘浠锋牸绠$悊-鍒犻櫎")
@Transactional(rollbackFor = Exception.class)
@@ -61,10 +66,7 @@
return result ? AjaxResult.success() : AjaxResult.error();
}
- /**
- * 瀵煎嚭
- * @param response
- */
+ @Log(title = "瀵煎嚭閲囪喘浠锋牸绠$悊", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response) {
procurementPriceManagementService.export(response);
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java
index 6387006..129277a 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java
@@ -8,6 +8,8 @@
import com.ruoyi.account.pojo.AccountStatementDetails;
import com.ruoyi.account.service.AccountStatementDetailsService;
import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.procurementrecord.bean.dto.ReturnManagementDto;
@@ -45,6 +47,7 @@
return AjaxResult.success(result);
}
+ @Log(title = "鏂板閿�鍞��璐�", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "閿�鍞��璐�-娣诲姞")
@Transactional(rollbackFor = Exception.class)
@@ -52,6 +55,7 @@
return returnManagementService.addReturnManagementDto(returnManagementDto) ? success() : error();
}
+ @Log(title = "淇敼閿�鍞��璐�", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "閿�鍞��璐�-淇敼")
@Transactional(rollbackFor = Exception.class)
@@ -68,6 +72,7 @@
}
+ @Log(title = "鍒犻櫎閿�鍞��璐�", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
@Operation(summary = "閿�鍞��璐�-鍒犻櫎")
@Transactional(rollbackFor = Exception.class)
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ReturnSaleProductController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ReturnSaleProductController.java
index e7826aa..fee4e76 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ReturnSaleProductController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ReturnSaleProductController.java
@@ -1,5 +1,7 @@
package com.ruoyi.procurementrecord.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java b/src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java
index dd1d50e..0f48902 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionBomStructureController.java
@@ -1,5 +1,7 @@
package com.ruoyi.production.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.bean.dto.ProductionBomStructureDto;
import com.ruoyi.production.bean.vo.ProductionBomStructureVo;
@@ -31,6 +33,7 @@
return R.ok(productionBomStructureService.listByBomId(bomId));
}
+ @Log(title = "鏂板鎴栦慨鏀笲OM缁撴瀯", businessType = BusinessType.UPDATE)
@PostMapping("/addOrUpdateBomStructs")
@Operation(summary = "鏂板鎴栦慨鏀笲OM缁撴瀯")
public R addProductionBomStructure(@RequestBody ProductionBomStructureDto productionBomStructureDto) {
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java b/src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java
index 56ed8c2..31fa3f5 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOperationTaskController.java
@@ -1,5 +1,7 @@
package com.ruoyi.production.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.bean.dto.ProductionOperationTaskDto;
@@ -40,36 +42,42 @@
return R.ok(productionOperationTaskService.getProductionOperationTaskInfo(id));
}
+ @Log(title = "鏂板宸ュ崟", businessType = BusinessType.INSERT)
@PostMapping
@Operation(summary = "鏂板宸ュ崟")
public R<Boolean> add(@RequestBody ProductionOperationTask productionOperationTask) {
return R.ok(productionOperationTaskService.saveProductionOperationTask(productionOperationTask));
}
+ @Log(title = "淇敼宸ュ崟", businessType = BusinessType.UPDATE)
@PutMapping
@Operation(summary = "淇敼宸ュ崟")
public R<Boolean> edit(@RequestBody ProductionOperationTask productionOperationTask) {
return R.ok(productionOperationTaskService.saveProductionOperationTask(productionOperationTask));
}
+ @Log(title = "鍒犻櫎宸ュ崟", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎宸ュ崟")
public R<Boolean> remove(@RequestBody List<Long> ids) {
return R.ok(productionOperationTaskService.removeProductionOperationTask(ids));
}
+ @Log(title = "浜у搧宸ュ崟鏇存柊", businessType = BusinessType.UPDATE)
@Operation(summary = "浜у搧宸ュ崟鏇存柊")
@PostMapping("/updateProductWorkOrder")
public R updateProductWorkOrder(@RequestBody ProductionOperationTaskDto dto) {
return R.ok(productionOperationTaskService.updateProductWorkOrder(dto));
}
+ @Log(title = "鎸囨淳鎶ュ伐浜�", businessType = BusinessType.UPDATE)
@Operation(summary = "鎸囨淳鎶ュ伐浜�")
@PostMapping("/assign")
public R<Boolean> assign(@RequestBody ProductionOperationTaskDto dto) {
return R.ok(productionOperationTaskService.assign(dto));
}
+ @Log(title = "宸ュ崟娴佽浆鍗′笅杞�", businessType = BusinessType.EXPORT)
@PostMapping("/down")
@Operation(summary = "宸ュ崟娴佽浆鍗′笅杞�")
public void down(HttpServletResponse response, @RequestBody ProductionOperationTaskDto dto) {
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
index 0a68875..cb65252 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
@@ -53,6 +53,7 @@
return R.ok(productionOrderService.getProductionOrderInfo(id));
}
+ @Log(title = "鐢熶骇宸ュ崟", businessType = BusinessType.INSERT)
@PostMapping("/addOrder")
@Operation(summary = "鏂板鐢熶骇璁㈠崟", description = "鏂板涓嬪崟鍙敮鎸�1绉嶆柟寮忥細鐢熶骇璁″垝鐢熸垚锛屼紶 productionPlanIds锛岀郴缁熻嚜鍔ㄦ眹鎬昏鍒掑緱鍒颁骇鍝佽鏍煎拰鏁伴噺锛�"
+ "technologyRoutingId 涓虹┖鏃朵細鑷姩鍖归厤璇ヤ骇鍝佽鏍兼渶鏂板伐鑹鸿矾绾匡紝quantity 鏈�缁堝繀椤诲ぇ浜� 0銆�")
@@ -62,18 +63,21 @@
return R.ok(productionOrderService.saveProductionOrder(productionOrder));
}
+ @Log(title = "鐢熶骇宸ュ崟", businessType = BusinessType.UPDATE)
@Operation(summary = "缁戝畾宸ヨ壓璺嚎")
@PostMapping("/bindingRoute")
public R bindingRoute(@RequestBody ProductionOrderDto productionOrderDto) {
return R.ok(productionOrderService.bindingRoute(productionOrderDto));
}
+ @Log(title = "鐢熶骇宸ュ崟", businessType = BusinessType.UPDATE)
@PostMapping("/syncSnapshot/{id}")
@Operation(summary = "鍚屾鐢熶骇璁㈠崟宸ヨ壓/BOM蹇収")
public R<Integer> syncSnapshot(@PathVariable Long id) {
return R.ok(productionOrderService.syncProductionOrderSnapshot(id));
}
+ @Log(title = "鐢熶骇宸ュ崟", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎鐢熶骇璁㈠崟")
public R<Boolean> remove(@RequestBody List<Long> ids) {
@@ -98,6 +102,7 @@
return R.ok(productionOrderService.getWorkOrderReportInspectDetail(productionOrderDto));
}
+ @Log(title = "鐢熶骇宸ュ崟", businessType = BusinessType.UPDATE)
@Operation(summary = "鏇存柊璁㈠崟鐘舵��")
@PostMapping("/updateOrder")
public R updateOrder(@RequestBody ProductionOrderDto productionOrderDto) {
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java
index a8e2d2e..ec63f47 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderPickController.java
@@ -1,5 +1,7 @@
package com.ruoyi.production.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.bean.dto.ProductionOrderPickDto;
import com.ruoyi.production.bean.vo.ProductionOrderPickVo;
@@ -27,12 +29,14 @@
private final ProductionOrderPickService productionOrderPickService;
+ @Log(title = "棰嗘枡淇濆瓨鍒扮嚎杈逛粨", businessType = BusinessType.INSERT)
@PostMapping("/savePick")
@Operation(summary = "棰嗘枡淇濆瓨鍒扮嚎杈逛粨")
public R<Boolean> savePick(@RequestBody ProductionOrderPickDto dto) {
return R.ok(productionOrderPickService.savePick(dto));
}
+ @Log(title = "鍙樻洿棰嗘枡", businessType = BusinessType.UPDATE)
@PostMapping("/updatePick")
@Operation(summary = "鍙樻洿棰嗘枡")
public R<Boolean> updatePick(@RequestBody ProductionOrderPickDto dto) {
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java
index 2765c10..277f949 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingController.java
@@ -1,5 +1,7 @@
package com.ruoyi.production.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.pojo.ProductionOrderRoutingOperation;
import com.ruoyi.production.service.ProductionOrderRoutingOperationService;
@@ -30,24 +32,28 @@
return R.ok(productionOrderRoutingService.listMain(orderId));
}
+ @Log(title = "鐢熶骇宸ュ簭璺敱", businessType = BusinessType.INSERT)
@PostMapping("/addRouteItem")
@Operation(summary = "鏂板鐢熶骇璁㈠崟鐨勫伐鑹鸿矾绾胯鎯�")
public R addRouteItem(@RequestBody ProductionOrderRoutingOperation productionOrderRoutingOperation) {
return productionOrderRoutingOperationService.addRouteItem(productionOrderRoutingOperation);
}
+ @Log(title = "鐢熶骇宸ュ簭璺敱", businessType = BusinessType.UPDATE)
@PostMapping("/updateRouteItem")
@Operation(summary = "淇敼鐢熶骇璁㈠崟鐨勫伐鑹鸿矾绾胯鎯�")
public R updateRouteItem(@RequestBody ProductionOrderRoutingOperation productionOrderRoutingOperation) {
return R.ok(productionOrderRoutingOperationService.updateRouteItem(productionOrderRoutingOperation));
}
+ @Log(title = "鐢熶骇宸ュ簭璺敱", businessType = BusinessType.DELETE)
@DeleteMapping("/deleteRouteItem/{id}")
@Operation(summary = "鍒犻櫎鐢熶骇宸ヨ壓璺嚎")
public R deleteRouteItem(@PathVariable("id") Long id) {
return productionOrderRoutingOperationService.deleteRouteItem(id);
}
+ @Log(title = "鐢熶骇宸ュ簭璺敱", businessType = BusinessType.UPDATE)
@PostMapping("/sortRouteItem")
@Operation(summary = "鎺掑簭")
public R sortRouteItem(@RequestBody ProductionOrderRoutingOperation productionOrderRoutingOperation) {
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationParamController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationParamController.java
index fd229ef..dfd3547 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationParamController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderRoutingOperationParamController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.bean.dto.ProductionOrderRoutingOperationParamDto;
import com.ruoyi.production.bean.vo.ProductionOrderRoutingOperationParamVo;
@@ -41,18 +43,21 @@
return R.ok(productionOrderRoutingOperationParamService.getProductionOrderRoutingOperationParamInfo(id));
}
+ @Log(title = "鐢熶骇宸ュ簭鍙傛暟", businessType = BusinessType.INSERT)
@PostMapping
@Operation(summary = "鏂板鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟")
public R<Boolean> add(@RequestBody ProductionOrderRoutingOperationParam item) {
return R.ok(productionOrderRoutingOperationParamService.saveProductionOrderRoutingOperationParam(item));
}
+ @Log(title = "鐢熶骇宸ュ簭鍙傛暟", businessType = BusinessType.UPDATE)
@PutMapping
@Operation(summary = "淇敼鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟")
public R<Boolean> edit(@RequestBody ProductionOrderRoutingOperationParam item) {
return R.ok(productionOrderRoutingOperationParamService.updateById(item));
}
+ @Log(title = "鐢熶骇宸ュ簭鍙傛暟", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
@Operation(summary = "鍒犻櫎鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟")
public R<Boolean> remove(@PathVariable("id") Long id) {
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
index 926a59f..341026d 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.bean.dto.ProductionProductMainDto;
import com.ruoyi.production.service.ProductionProductMainService;
@@ -50,30 +52,35 @@
* @param productionProductMainDto
* @return
*/
+ @Log(title = "鐢熶骇浜у搧", businessType = BusinessType.INSERT)
@PostMapping("/addProductMain")
@PreAuthorize("@ss.hasPermi('productionProductMain:add')")
public R addProductMain(@RequestBody ProductionProductMainDto productionProductMainDto) {
return R.ok(productionProductMainService.addProductMain(productionProductMainDto));
}
+ @Log(title = "鐢熶骇浜у搧", businessType = BusinessType.INSERT)
@PostMapping
@Operation(summary = "鏂板鐢熶骇鎶ュ伐")
public R add(@RequestBody ProductionProductMainDto productionProductMainDto) {
return R.ok(productionProductMainService.saveProductionProductMain(productionProductMainDto));
}
+ @Log(title = "鐢熶骇浜у搧", businessType = BusinessType.UPDATE)
@PutMapping
@Operation(summary = "淇敼鐢熶骇鎶ュ伐")
public R edit(@RequestBody ProductionProductMainDto productionProductMainDto) {
return R.ok(productionProductMainService.saveProductionProductMain(productionProductMainDto));
}
+ @Log(title = "鐢熶骇浜у搧", businessType = BusinessType.DELETE)
@Operation(summary = "鍒犻櫎鎶ュ伐")
@DeleteMapping("/delete")
public R delete(@RequestBody ProductionProductMainDto productionProductMainDto) {
return R.ok(productionProductMainService.removeProductMain(productionProductMainDto.getId()));
}
+ @Log(title = "鐢熶骇浜у搧", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
@Operation(summary = "鍒犻櫎鐢熶骇鎶ュ伐")
public R remove(@PathVariable("id") Long id) {
@@ -84,6 +91,7 @@
/**
* 瀵煎嚭
*/
+ @Log(title = "鐢熶骇浜у搧", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, ProductionProductMainDto productionProductMainDto) {
List<ProductionProductMainDto> list;
diff --git a/src/main/java/com/ruoyi/project/common/CommonController.java b/src/main/java/com/ruoyi/project/common/CommonController.java
index 093e132..4e8c1f2 100644
--- a/src/main/java/com/ruoyi/project/common/CommonController.java
+++ b/src/main/java/com/ruoyi/project/common/CommonController.java
@@ -3,6 +3,8 @@
import com.ruoyi.basic.service.StorageBlobService;
import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Anonymous;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -36,6 +38,7 @@
private final StorageBlobService storageBlobService;
private final FileUtil fileUtil;
+ @Log(title = "閫氱敤鏂囦欢涓婁紶", businessType = BusinessType.INSERT)
@PostMapping({"/upload"})
@Operation(summary = "鏂囦欢涓婁紶")
public R upload(@RequestParam("files") List<MultipartFile> files) {
@@ -46,6 +49,7 @@
* 鍏叡鏂囦欢涓婁紶
* 姝ゆ帴鍙d笂浼犵殑鏂囦欢姘镐箙鏈夋晥锛屾厧鐢�
*/
+ @Log(title = "鍏叡鏂囦欢涓婁紶", businessType = BusinessType.INSERT)
@PostMapping({"/public/upload"})
@Operation(summary = "鏂囦欢涓婁紶")
public R publicUpload(@RequestParam("files") List<MultipartFile> files) {
diff --git a/src/main/java/com/ruoyi/project/tool/swagger/TestController.java b/src/main/java/com/ruoyi/project/tool/swagger/TestController.java
index 0859437..52e324d 100644
--- a/src/main/java/com/ruoyi/project/tool/swagger/TestController.java
+++ b/src/main/java/com/ruoyi/project/tool/swagger/TestController.java
@@ -12,14 +12,16 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.framework.web.controller.BaseController;
-import com.ruoyi.framework.web.domain.R;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.media.Schema;
-import io.swagger.v3.oas.annotations.tags.Tag;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.R;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.tags.Tag;
/**
* swagger 鐢ㄦ埛娴嬭瘯鏂规硶
@@ -46,9 +48,9 @@
}
@Operation(summary = "鑾峰彇鐢ㄦ埛璇︾粏")
- @Parameter(name = "userId", description = "鐢ㄦ埛ID", required = true)
- @GetMapping("/{userId}")
- public R<UserEntity> getUser(@PathVariable Integer userId)
+ @Parameter(name = "userId", description = "鐢ㄦ埛ID", required = true)
+ @GetMapping("/{userId}")
+ public R<UserEntity> getUser(@PathVariable Integer userId)
{
if (!users.isEmpty() && users.containsKey(userId))
{
@@ -60,15 +62,16 @@
}
}
+ @Log(title = "娴嬭瘯鎺ュ彛鏂板鐢ㄦ埛", businessType = BusinessType.INSERT)
@Operation(summary = "鏂板鐢ㄦ埛")
- @Parameters({
- @Parameter(name = "userId", description = "鐢ㄦ埛id"),
- @Parameter(name = "username", description = "鐢ㄦ埛鍚嶇О"),
- @Parameter(name = "password", description = "鐢ㄦ埛瀵嗙爜"),
- @Parameter(name = "mobile", description = "鐢ㄦ埛鎵嬫満")
- })
- @PostMapping("/save")
- public R<String> save(UserEntity user)
+ @Parameters({
+ @Parameter(name = "userId", description = "鐢ㄦ埛id"),
+ @Parameter(name = "username", description = "鐢ㄦ埛鍚嶇О"),
+ @Parameter(name = "password", description = "鐢ㄦ埛瀵嗙爜"),
+ @Parameter(name = "mobile", description = "鐢ㄦ埛鎵嬫満")
+ })
+ @PostMapping("/save")
+ public R<String> save(UserEntity user)
{
if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
{
@@ -78,6 +81,7 @@
return R.ok();
}
+ @Log(title = "娴嬭瘯鎺ュ彛鏇存柊鐢ㄦ埛", businessType = BusinessType.UPDATE)
@Operation(summary = "鏇存柊鐢ㄦ埛")
@PutMapping("/update")
public R<String> update(@RequestBody UserEntity user)
@@ -95,10 +99,11 @@
return R.ok();
}
+ @Log(title = "娴嬭瘯鎺ュ彛鍒犻櫎鐢ㄦ埛", businessType = BusinessType.DELETE)
@Operation(summary = "鍒犻櫎鐢ㄦ埛淇℃伅")
- @Parameter(name = "userId", description = "鐢ㄦ埛ID", required = true)
- @DeleteMapping("/{userId}")
- public R<String> delete(@PathVariable Integer userId)
+ @Parameter(name = "userId", description = "鐢ㄦ埛ID", required = true)
+ @DeleteMapping("/{userId}")
+ public R<String> delete(@PathVariable Integer userId)
{
if (!users.isEmpty() && users.containsKey(userId))
{
diff --git a/src/main/java/com/ruoyi/projectManagement/controller/InfoController.java b/src/main/java/com/ruoyi/projectManagement/controller/InfoController.java
index 56baf0f..ed44f79 100644
--- a/src/main/java/com/ruoyi/projectManagement/controller/InfoController.java
+++ b/src/main/java/com/ruoyi/projectManagement/controller/InfoController.java
@@ -1,5 +1,7 @@
package com.ruoyi.projectManagement.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.projectManagement.dto.InfoStageDto;
import com.ruoyi.projectManagement.dto.UpdateStateInfo;
@@ -31,6 +33,7 @@
@PostMapping("/save")
@Operation(summary = "淇濆瓨")
+ @Log(title = "椤圭洰淇℃伅-淇濆瓨", businessType = BusinessType.INSERT)
public AjaxResult save(@RequestBody @Valid SaveInfoVo saveInfoVo) {
infoService.save(saveInfoVo);
return AjaxResult.success();
@@ -38,6 +41,7 @@
@PostMapping("/updateStatus")
@Operation(summary = "淇敼鐘舵��")
+ @Log(title = "椤圭洰淇℃伅-淇敼鐘舵��", businessType = BusinessType.UPDATE)
public AjaxResult updateStatus(@RequestBody @Valid UpdateStateInfo updateStateInfo){
infoService.updateStatus(updateStateInfo);
return AjaxResult.success();
@@ -45,6 +49,7 @@
@PostMapping("/delete/{id}")
@Operation(summary = "鍒犻櫎")
+ @Log(title = "椤圭洰淇℃伅-鍒犻櫎", businessType = BusinessType.DELETE)
public AjaxResult delete(@PathVariable Long id) {
infoService.deleteInfo(id);
return AjaxResult.success();
@@ -65,6 +70,7 @@
@PostMapping("/saveStage")
@Operation(summary = "淇濆瓨闃舵")
+ @Log(title = "椤圭洰淇℃伅-淇濆瓨闃舵", businessType = BusinessType.INSERT)
public AjaxResult saveStage(@RequestBody @Valid SaveInfoStageVo dto) {
infoStageHandleService.save(dto);
return AjaxResult.success();
@@ -78,6 +84,7 @@
@PostMapping("/deleteStage/{id}")
@Operation(summary = "鍒犻櫎闃舵")
+ @Log(title = "椤圭洰淇℃伅-鍒犻櫎闃舵", businessType = BusinessType.DELETE)
public AjaxResult deleteStage(@PathVariable Long id) {
infoStageHandleService.deleteById(id);
return AjaxResult.success();
diff --git a/src/main/java/com/ruoyi/projectManagement/controller/PlanController.java b/src/main/java/com/ruoyi/projectManagement/controller/PlanController.java
index c8b982c..9857c27 100644
--- a/src/main/java/com/ruoyi/projectManagement/controller/PlanController.java
+++ b/src/main/java/com/ruoyi/projectManagement/controller/PlanController.java
@@ -1,5 +1,7 @@
package com.ruoyi.projectManagement.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.projectManagement.service.PlanService;
import com.ruoyi.projectManagement.vo.SavePlanNodeVo;
@@ -28,6 +30,7 @@
@PostMapping("/save")
@Operation(summary = "淇濆瓨")
+ @Log(title = "椤圭洰璁″垝-淇濆瓨", businessType = BusinessType.INSERT)
public AjaxResult save(@RequestBody @Valid SavePlanVo savePlanVo) {
planService.savePlan(savePlanVo);
return AjaxResult.success();
@@ -35,6 +38,7 @@
@PostMapping("/delete/{id}")
@Operation(summary = "鍒犻櫎")
+ @Log(title = "椤圭洰璁″垝-鍒犻櫎", businessType = BusinessType.DELETE)
public AjaxResult delete(@PathVariable Long id) {
planService.deletePlan(id);
return AjaxResult.success();
diff --git a/src/main/java/com/ruoyi/projectManagement/controller/RolesController.java b/src/main/java/com/ruoyi/projectManagement/controller/RolesController.java
index 8adcf8d..02217e5 100644
--- a/src/main/java/com/ruoyi/projectManagement/controller/RolesController.java
+++ b/src/main/java/com/ruoyi/projectManagement/controller/RolesController.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.projectManagement.dto.RoleDto;
import com.ruoyi.projectManagement.mapper.RolesMapper;
@@ -33,6 +35,7 @@
@PostMapping("/add")
@Operation(summary = "鏂板")
+ @Log(title = "椤圭洰瑙掕壊-鏂板", businessType = BusinessType.INSERT)
public AjaxResult add(@RequestBody RoleDto roleDto) {
if (roleDto.getIsDefaultNo()) {
roleDto.setNo(OrderUtils.countTodayByCreateTime(rolesMapper, "XMJS","no"));
@@ -42,12 +45,14 @@
@PostMapping("/update")
@Operation(summary = "淇敼")
+ @Log(title = "椤圭洰瑙掕壊-淇敼", businessType = BusinessType.UPDATE)
public AjaxResult update(@RequestBody Roles roles) {
return AjaxResult.success(rolesservice.updateById(roles));
}
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎")
+ @Log(title = "椤圭洰瑙掕壊-鍒犻櫎", businessType = BusinessType.DELETE)
public AjaxResult delete(@RequestBody List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
return AjaxResult.success(rolesservice.removeBatchByIds(ids));
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
index 0951d3b..816ce27 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -157,6 +157,7 @@
/**
* 淇敼閲囪喘鍙拌处瀹℃壒鐘舵��
*/
+ @Log(title = "閲囪喘鍙拌处", businessType = BusinessType.UPDATE)
@PostMapping("/updateApprovalStatus")
public AjaxResult addOrEditPurchase(@RequestBody PurchaseLedger purchaseLedger){
return toAjax(purchaseLedgerService.updateById(purchaseLedger));
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
index e4c7bf7..b362909 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
@@ -61,6 +61,7 @@
return AjaxResult.success(purchaseReturnOrdersService.getPurchaseReturnOrderDtoById(id));
}
+ @Log(title = "閲囪喘閫�璐у崟", businessType = BusinessType.DELETE)
@PostMapping("/deleteById/{id}")
public AjaxResult deleteById(@PathVariable Long id) {
//濡傛灉璇ラ噰璐��璐у凡缁忕敓鎴愬璐﹀崟鍒欐棤娉曞垹闄�
diff --git a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
index cd3b9fd..22faea3 100644
--- a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
@@ -27,6 +27,8 @@
private String entryDateStart;
private String entryDateEnd;
+ @Schema(description = "鍏ュ簱鐘舵��")
+ private String stockInStatus;
private Long id;
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 2568511..09d5d20 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -451,12 +451,7 @@
@Override
public IPage<PurchaseLedgerDto> selectPurchaseLedgerListPage(IPage ipage, PurchaseLedgerDto purchaseLedger) {
- IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerMapper.selectPurchaseLedgerListPage(ipage, purchaseLedger);
- purchaseLedgerDtoIPage.getRecords().forEach(purchaseLedgerDto -> {
- List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>().eq(CommonFile::getCommonId, purchaseLedgerDto.getId()).eq(CommonFile::getType, FileNameType.PURCHASE.getValue()));
- purchaseLedgerDto.setSalesLedgerFiles(commonFiles);
- });
- return purchaseLedgerDtoIPage;
+ return purchaseLedgerMapper.selectPurchaseLedgerListPage(ipage, purchaseLedger);
}
@Override
diff --git a/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java b/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java
index 3533e6e..845825e 100644
--- a/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java
+++ b/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsDetailsVo.java
@@ -24,10 +24,10 @@
@Schema(description = "鍚堝悓閲戦")
private BigDecimal contractAmount;
- @Schema(description = "浠樻閲戦")
- private BigDecimal paymentAmount;
+ @Schema(description = "宸插叆搴撻噾棰�")
+ private BigDecimal shippedAmount;
- @Schema(description = "搴斾粯閲戦")
- private BigDecimal payableAmount;
+ @Schema(description = "鏈叆搴撻噾棰�")
+ private BigDecimal unshippedAmount;
}
diff --git a/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java b/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java
index 35cefc0..df811bb 100644
--- a/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java
+++ b/src/main/java/com/ruoyi/purchase/vo/SupplierTransactionsVo.java
@@ -16,15 +16,12 @@
private String supplierName;
@Schema(description = "鍚堝悓鎬婚噾棰�")
- //璇ヤ緵搴斿晢閲囪喘鍚堝悓绱閲戦
private BigDecimal contractAmounts;
- @Schema(description = "浠樻閲戦")
- //璇ヤ緵搴斿晢閲囪喘浠樻绱閲戦
- private BigDecimal paymentAmount;
+ @Schema(description = "宸插叆搴撻噾棰�")
+ private BigDecimal shippedAmount;
- @Schema(description = "搴斾粯閲戦")
- //璇ヤ緵搴斿晢閲囪喘搴斾粯绱閲戦=璐㈠姟(鍏ュ簱-閫�璐�)
- private BigDecimal payableAmount;
+ @Schema(description = "鏈叆搴撻噾棰�")
+ private BigDecimal unshippedAmount;
}
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityInspectFileController.java b/src/main/java/com/ruoyi/quality/controller/QualityInspectFileController.java
index bc5df62..742fef5 100644
--- a/src/main/java/com/ruoyi/quality/controller/QualityInspectFileController.java
+++ b/src/main/java/com/ruoyi/quality/controller/QualityInspectFileController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.quality.pojo.QualityInspectFile;
import com.ruoyi.quality.pojo.QualityInspectParam;
@@ -33,6 +35,7 @@
* @param qualityInspectFile
* @return
*/
+ @Log(title = "涓婁紶璐ㄦ鏂囦欢", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody QualityInspectFile qualityInspectFile) {
return AjaxResult.success(qualityInspectFileService.save(qualityInspectFile));
@@ -43,6 +46,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎璐ㄦ鏂囦欢", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) {
if(CollectionUtils.isEmpty(ids)){
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java b/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
index bc3f60a..3520bf8 100644
--- a/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
@@ -159,6 +159,13 @@
@Schema(description = "鍏宠仈妫�娴嬫爣鍑嗕富琛╥d")
private Long testStandardId;
+ /**
+ * 鍚堟牸鐜�
+ */
+ @TableField(exist = false)
+ @Excel(name = "鍚堟牸鐜�(%)")
+ private BigDecimal passRate;
+
@TableField(fill = FieldFill.INSERT)
private Long deptId;
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index 0707375..43d8d32 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -92,11 +92,7 @@
public int submit(QualityInspect inspect) {
QualityInspect qualityInspect = qualityInspectMapper.selectById(inspect.getId());
- //鎻愪氦鍓嶅繀椤诲垽鏂槸鍚﹀悎鏍�
- if (ObjectUtils.isNull(qualityInspect.getCheckResult())) {
- throw new ServiceException("璇峰厛鍒ゆ柇鏄惁鍚堟牸");
- }
-
+ //鎻愪氦鍓嶅繀椤诲垽鏂槸鍚﹀悎鏍硷紙閫氳繃鍚堟牸鏁伴噺鍜屼笉鍚堟牸鏁伴噺鏉ュ垽鏂級
if (ObjectUtils.isNull(qualityInspect.getQualifiedQuantity())) {
throw new ServiceException("鍚堟牸鏁伴噺涓嶈兘涓虹┖");
}
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeAccidentController.java b/src/main/java/com/ruoyi/safe/controller/SafeAccidentController.java
index 400998a..f37f6ef 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeAccidentController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeAccidentController.java
@@ -1,6 +1,8 @@
package com.ruoyi.safe.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.pojo.SafeAccident;
import com.ruoyi.safe.service.SafeAccidentService;
@@ -34,18 +36,21 @@
}
@Operation(summary = "鏂板浜嬫晠涓婃姤璁板綍")
+ @Log(title = "瀹夊叏浜嬫晠", businessType = BusinessType.INSERT)
@PostMapping()
public R add(@RequestBody SafeAccident safeAccident) {
return R.ok(safeAccidentService.save(safeAccident));
}
@Operation(summary = "淇敼浜嬫晠涓婃姤璁板綍")
+ @Log(title = "瀹夊叏浜嬫晠", businessType = BusinessType.UPDATE)
@PutMapping ()
public R update(@RequestBody SafeAccident safeAccident) {
return R.ok(safeAccidentService.updateById(safeAccident));
}
@Operation(summary = "鍒犻櫎浜嬫晠涓婃姤璁板綍")
+ @Log(title = "瀹夊叏浜嬫晠", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R delSafeAccident(@RequestBody List<Integer> ids) {
return R.ok(safeAccidentService.removeBatchByIds(ids));
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeCertificationController.java b/src/main/java/com/ruoyi/safe/controller/SafeCertificationController.java
index bdedc46..824e219 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeCertificationController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeCertificationController.java
@@ -1,6 +1,8 @@
package com.ruoyi.safe.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.pojo.SafeCertification;
import com.ruoyi.safe.service.SafeCertificationService;
@@ -35,18 +37,21 @@
}
@Operation(summary = "鏂板瀹夊叏瑙勭▼涓庤祫璐ㄧ鐞�")
+ @Log(title = "瀹夊叏璇佷功", businessType = BusinessType.INSERT)
@PostMapping()
public R add(@RequestBody SafeCertification safeCertification) {
return R.ok(safeCertificationService.save(safeCertification));
}
@Operation(summary = "淇敼瀹夊叏瑙勭▼涓庤祫璐ㄧ鐞�")
+ @Log(title = "瀹夊叏璇佷功", businessType = BusinessType.UPDATE)
@PutMapping ()
public R update(@RequestBody SafeCertification safeCertification) {
return R.ok(safeCertificationService.updateById(safeCertification));
}
@Operation(summary = "鍒犻櫎瀹夊叏瑙勭▼涓庤祫璐ㄧ鐞�")
+ @Log(title = "瀹夊叏璇佷功", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R delSafeCertification(@RequestBody List<Integer> ids) {
return R.ok(safeCertificationService.removeBatchByIds(ids));
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeCertificationFileController.java b/src/main/java/com/ruoyi/safe/controller/SafeCertificationFileController.java
index 49e3e1d..dd8c6de 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeCertificationFileController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeCertificationFileController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.pojo.SafeCertificationFile;
import com.ruoyi.safe.service.SafeCertificationFileService;
@@ -35,6 +37,7 @@
* @param safeCertificationFile
* @return
*/
+ @Log(title = "鏂板瀹夊叏璇佷功鏂囦欢", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "鏂板")
public R add(@RequestBody SafeCertificationFile safeCertificationFile) {
@@ -46,6 +49,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎瀹夊叏璇佷功鏂囦欢", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
@Operation(summary = "鍒犻櫎")
public R delSafeCertificationFile(@RequestBody List<Integer> ids) {
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeContingencyPlanController.java b/src/main/java/com/ruoyi/safe/controller/SafeContingencyPlanController.java
index d5d835d..75844dc 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeContingencyPlanController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeContingencyPlanController.java
@@ -1,6 +1,8 @@
package com.ruoyi.safe.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.pojo.SafeContingencyPlan;
import com.ruoyi.safe.service.SafeContingencyPlanService;
@@ -33,18 +35,21 @@
return R.ok(safeContingencyPlanService.pageSafeContingencyPlan(page, safeContingencyPlan));
}
+ @Log(title = "鏂板搴旀�ラ妗�", businessType = BusinessType.INSERT)
@Operation(summary = "鏂板搴旀�ラ妗堟煡闃�")
@PostMapping()
public R add(@RequestBody SafeContingencyPlan safeContingencyPlan) {
return R.ok(safeContingencyPlanService.save(safeContingencyPlan));
}
+ @Log(title = "淇敼搴旀�ラ妗�", businessType = BusinessType.UPDATE)
@Operation(summary = "淇敼搴旀�ラ妗堟煡闃�")
@PutMapping ()
public R update(@RequestBody SafeContingencyPlan safeContingencyPlan) {
return R.ok(safeContingencyPlanService.updateById(safeContingencyPlan));
}
+ @Log(title = "鍒犻櫎搴旀�ラ妗�", businessType = BusinessType.DELETE)
@Operation(summary = "鍒犻櫎搴旀�ラ妗堟煡闃�")
@DeleteMapping("/{ids}")
public R delSafeCertification(@RequestBody List<Integer> ids) {
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeHazardController.java b/src/main/java/com/ruoyi/safe/controller/SafeHazardController.java
index b433d04..493ff73 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeHazardController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeHazardController.java
@@ -1,6 +1,8 @@
package com.ruoyi.safe.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.pojo.SafeHazard;
import com.ruoyi.safe.service.SafeHazardService;
@@ -33,18 +35,21 @@
return R.ok(safeHazardService.pageSafeHazard(page, safeHazard));
}
+ @Log(title = "鏂板鍗遍櫓婧�", businessType = BusinessType.INSERT)
@Operation(summary = "鏂板鍗遍櫓婧愬彴璐�")
@PostMapping()
public R add(@RequestBody SafeHazard safeHazard) {
return R.ok(safeHazardService.save(safeHazard));
}
+ @Log(title = "淇敼鍗遍櫓婧�", businessType = BusinessType.UPDATE)
@Operation(summary = "淇敼鍗遍櫓婧愬彴璐�")
@PutMapping ()
public R update(@RequestBody SafeHazard safeHazard) {
return R.ok(safeHazardService.updateById(safeHazard));
}
+ @Log(title = "鍒犻櫎鍗遍櫓婧�", businessType = BusinessType.DELETE)
@Operation(summary = "鍒犻櫎鍗遍櫓婧愬彴璐�")
@DeleteMapping("/{ids}")
public R delSafeHazard(@RequestBody List<Integer> ids) {
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeHazardRecordController.java b/src/main/java/com/ruoyi/safe/controller/SafeHazardRecordController.java
index 681efa5..a8bb0c6 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeHazardRecordController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeHazardRecordController.java
@@ -1,6 +1,8 @@
package com.ruoyi.safe.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.dto.SafeHazardRecordDto;
import com.ruoyi.safe.pojo.SafeHazardRecord;
@@ -35,18 +37,21 @@
}
@Operation(summary = "棰嗙敤")
+ @Log(title = "鍗遍櫓婧愯褰�", businessType = BusinessType.INSERT)
@PostMapping("/borrow")
public R borrow(@RequestBody SafeHazardRecord safeHazardRecord) {
return R.ok(safeHazardRecordService.borrow(safeHazardRecord));
}
@Operation(summary = "褰掕繕")
+ @Log(title = "鍗遍櫓婧愯褰�", businessType = BusinessType.UPDATE)
@PutMapping("/return")
public R returnSafeHazardRecord(@RequestBody SafeHazardRecord safeHazardRecord) {
return R.ok(safeHazardRecordService.returnSafeHazardRecord(safeHazardRecord));
}
@Operation(summary = "鍒犻櫎")
+ @Log(title = "鍗遍櫓婧愯褰�", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R delSafeHazardRecord(@RequestBody List<Integer> ids) {
return R.ok(safeHazardRecordService.delSafeHazardRecord(ids));
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeHiddenController.java b/src/main/java/com/ruoyi/safe/controller/SafeHiddenController.java
index f77f294..a7cff40 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeHiddenController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeHiddenController.java
@@ -1,6 +1,8 @@
package com.ruoyi.safe.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.dto.SafeHiddenDto;
import com.ruoyi.safe.pojo.SafeHidden;
@@ -35,18 +37,21 @@
}
@Operation(summary = "鏂板闅愭偅鎺掓煡")
+ @Log(title = "瀹夊叏闅愭偅", businessType = BusinessType.INSERT)
@PostMapping()
public R add(@RequestBody SafeHidden safeHidden) {
return R.ok(safeHiddenService.add(safeHidden));
}
@Operation(summary = "淇敼闅愭偅鎺掓煡(鏁存敼/楠屾敹)")
+ @Log(title = "瀹夊叏闅愭偅", businessType = BusinessType.UPDATE)
@PutMapping ()
public R update(@RequestBody SafeHidden safeHidden) {
return R.ok(safeHiddenService.updateById(safeHidden));
}
@Operation(summary = "鍒犻櫎闅愭偅鎺掓煡")
+ @Log(title = "瀹夊叏闅愭偅", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R delSafeHidden(@RequestBody List<Integer> ids) {
return R.ok(safeHiddenService.delSafeHidden(ids));
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeHiddenFileController.java b/src/main/java/com/ruoyi/safe/controller/SafeHiddenFileController.java
index 511bdb7..8070bba 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeHiddenFileController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeHiddenFileController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.pojo.SafeHiddenFile;
import com.ruoyi.safe.service.SafeHiddenFileService;
@@ -35,6 +37,7 @@
* @param safeHiddenFile
* @return
*/
+ @Log(title = "鏂板闅愭偅鏂囦欢", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "鏂板")
public R add(@RequestBody SafeHiddenFile safeHiddenFile) {
@@ -46,6 +49,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎闅愭偅鏂囦欢", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
@Operation(summary = "鍒犻櫎")
public R delSafeHiddenFile(@RequestBody List<Integer> ids) {
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeTrainingController.java b/src/main/java/com/ruoyi/safe/controller/SafeTrainingController.java
index dd8b6f5..a1cd796 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeTrainingController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeTrainingController.java
@@ -1,6 +1,8 @@
package com.ruoyi.safe.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.dto.SafeTrainingDto;
import com.ruoyi.safe.pojo.SafeTraining;
@@ -39,12 +41,14 @@
}
@Operation(summary = "鏂板/缂栬緫瀹夊叏鍩硅鑰冩牳")
+ @Log(title = "瀹夊叏鍩硅", businessType = BusinessType.INSERT)
@PostMapping()
public R addOrUpdate(@RequestBody SafeTraining safeTraining) {
return R.ok(safeTrainingService.addOrUpdate(safeTraining));
}
@Operation(summary = "绛惧埌")
+ @Log(title = "瀹夊叏鍩硅", businessType = BusinessType.INSERT)
@PostMapping ("/sign")
public R sign(@RequestBody SafeTrainingDetails safeTrainingDetails) {
return R.ok(safeTrainingDetailsService.save(safeTrainingDetails));
@@ -57,18 +61,21 @@
}
@Operation(summary = "缁撴灉鏄庣粏淇濆瓨")
+ @Log(title = "瀹夊叏鍩硅", businessType = BusinessType.UPDATE)
@PostMapping ("/saveSafeTraining")
public R saveSafeTraining(@RequestBody SafeTrainingDto safeTrainingDto) {
return R.ok(safeTrainingService.saveSafeTraining(safeTrainingDto));
}
@Operation(summary = "鍒犻櫎瀹夊叏鍩硅鑰冩牳")
+ @Log(title = "瀹夊叏鍩硅", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R delSafeTraining(@RequestBody List<Integer> ids) {
return R.ok(safeTrainingService.delSafeTraining(ids));
}
@Operation(summary = "瀵煎嚭")
+ @Log(title = "瀹夊叏鍩硅", businessType = BusinessType.EXPORT)
@PostMapping ("/export")
public void export(HttpServletResponse response, @RequestBody SafeTraining safeTraining) {
safeTrainingService.export(response,safeTraining.getId());
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeTrainingDetailsController.java b/src/main/java/com/ruoyi/safe/controller/SafeTrainingDetailsController.java
index 63a03e4..bc692ca 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeTrainingDetailsController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeTrainingDetailsController.java
@@ -1,6 +1,8 @@
package com.ruoyi.safe.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.pojo.SafeTrainingDetails;
import com.ruoyi.safe.service.SafeTrainingDetailsService;
@@ -33,6 +35,7 @@
return R.ok(safeTrainingDetailsService.pageDetails(page, safeTrainingDetails));
}
+ @Log(title = "瀵煎嚭鍩硅璇︽儏", businessType = BusinessType.EXPORT)
@Operation(summary = "瀵煎嚭")
@PostMapping("/export")
public void export(HttpServletResponse response, @RequestBody SafeTrainingDetails safeTrainingDetails) {
diff --git a/src/main/java/com/ruoyi/safe/controller/SafeTrainingFileController.java b/src/main/java/com/ruoyi/safe/controller/SafeTrainingFileController.java
index 5d18a03..e82c121 100644
--- a/src/main/java/com/ruoyi/safe/controller/SafeTrainingFileController.java
+++ b/src/main/java/com/ruoyi/safe/controller/SafeTrainingFileController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.safe.pojo.SafeHiddenFile;
import com.ruoyi.safe.pojo.SafeTrainingFile;
@@ -36,6 +38,7 @@
* @param safeHiddenFile
* @return
*/
+ @Log(title = "鏂板鍩硅鏂囦欢", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "鏂板")
public R add(@RequestBody SafeTrainingFile safeHiddenFile) {
@@ -47,6 +50,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎鍩硅鏂囦欢", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
@Operation(summary = "鍒犻櫎")
public R delSafeHiddenFile(@RequestBody List<Integer> ids) {
diff --git a/src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java b/src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java
index f88a0e6..75e27f3 100644
--- a/src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java
+++ b/src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.sales.mapper.PaymentShippingMapper;
@@ -37,6 +39,7 @@
return AjaxResult.success(listPage);
}
+ @Log(title = "浠樻鍙戣揣", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "娣诲姞鏀粯涓庡彂璐т俊鎭�")
@Transactional(rollbackFor = Exception.class)
@@ -47,6 +50,7 @@
return save ? success() : error();
}
+ @Log(title = "浠樻鍙戣揣", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "淇敼鏀粯涓庡彂璐т俊鎭�")
@Transactional(rollbackFor = Exception.class)
@@ -55,6 +59,7 @@
return update ? success() : error();
}
+ @Log(title = "浠樻鍙戣揣", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎鏀粯涓庡彂璐т俊鎭�")
@Transactional(rollbackFor = Exception.class)
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
index f9251f8..929a17a 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.sales.dto.SalesQuotationDto;
import com.ruoyi.sales.service.SalesQuotationService;
@@ -21,6 +23,7 @@
}
+ @Log(title = "閿�鍞姤浠�", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response) {
Page page = new Page(-1,-1);
@@ -31,14 +34,17 @@
}
+ @Log(title = "閿�鍞姤浠�", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody SalesQuotationDto salesQuotationDto) {
return AjaxResult.success(salesQuotationService.add(salesQuotationDto));
}
+ @Log(title = "閿�鍞姤浠�", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult update(@RequestBody SalesQuotationDto salesQuotationDto) {
return AjaxResult.success(salesQuotationService.edit(salesQuotationDto));
}
+ @Log(title = "閿�鍞姤浠�", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
public AjaxResult delete(@RequestBody Long id) {
return AjaxResult.success(salesQuotationService.delete(id));
diff --git a/src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java b/src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java
index 5f64f8c..543a139 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalespersonManagementController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.sales.pojo.SalespersonManagement;
@@ -33,6 +35,7 @@
return AjaxResult.success(listPage);
}
+ @Log(title = "涓氬姟鍛樼鐞�", businessType = BusinessType.INSERT)
@PostMapping("/add")
@Operation(summary = "娣诲姞涓氬姟鍛樹俊鎭�")
@Transactional(rollbackFor = Exception.class)
@@ -41,6 +44,7 @@
return save ? AjaxResult.success() : AjaxResult.error();
}
+ @Log(title = "涓氬姟鍛樼鐞�", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@Operation(summary = "淇敼涓氬姟鍛樹俊鎭�")
@Transactional(rollbackFor = Exception.class)
@@ -49,6 +53,7 @@
return update ? AjaxResult.success() : AjaxResult.error();
}
+ @Log(title = "涓氬姟鍛樼鐞�", businessType = BusinessType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "鍒犻櫎涓氬姟鍛樹俊鎭�")
@Transactional(rollbackFor = Exception.class)
diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index f707b5b..5f02d86 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -106,6 +106,7 @@
/**
* 瀵煎嚭鍙戣揣淇℃伅绠$悊
*/
+ @Log(title = "鍙戣揣淇℃伅", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@Operation(summary = "瀵煎嚭鍙戣揣淇℃伅")
public void export(HttpServletResponse response) {
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 08bb128..f4a42d6 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -149,6 +149,10 @@
/**
* 浜у搧鐘舵��
*/
+ @TableField(exist = false)
+ @Schema(description = "鍏ュ簱瀹℃牳鐘舵��")
+ private String stockInApprovalStatus;
+
// @TableField(exist = false)
@Schema(description = "浜у搧鐘舵�侊細1-鍏呰冻")
private Integer approveStatus;
diff --git a/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
index 1ff7fa1..4cc96ac 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
@@ -48,7 +48,7 @@
// 鍙戣揣鏁伴噺
long count = shippingInfoMapper.selectCount(new LambdaQueryWrapper<ShippingInfo>()
.in(ShippingInfo::getSalesLedgerProductId, salesLedgerProducts.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList()))
- .eq(ShippingInfo::getStatus,"宸插彂璐�"));
+ .eq(ShippingInfo::getStatus,"瀹℃牳閫氳繃"));
map.put("shipRate", String.format("%.2f", count * 100.0 / salesLedgerProducts.size()) + "%");
return AjaxResult.success(map);
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index fe385f1..6303b04 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -185,7 +185,11 @@
.orderByDesc(ShippingInfo::getCreateTime)
.last("limit 1"));
if (shippingInfo != null) {
+ product.setShippingCarNumber(shippingInfo.getShippingCarNumber());
+ product.setShippingDate(shippingInfo.getShippingDate());
product.setShippingStatus(shippingInfo.getStatus());
+ product.setExpressCompany(shippingInfo.getExpressCompany());
+ product.setExpressNumber(shippingInfo.getExpressNumber());
}
}
@@ -452,14 +456,16 @@
.eq(ShippingInfo::getSalesLedgerProductId, product.getId())
.orderByDesc(ShippingInfo::getCreateTime)
.last("limit 1"));
- product.setShippingCarNumber(shippingInfo.getShippingCarNumber());
- product.setShippingDate(shippingInfo.getShippingDate());
if (shippingInfo != null) {
+ product.setShippingCarNumber(shippingInfo.getShippingCarNumber());
+ product.setShippingDate(shippingInfo.getShippingDate());
product.setShippingStatus(shippingInfo.getStatus());
+ product.setExpressCompany(shippingInfo.getExpressCompany());
+ product.setExpressNumber(shippingInfo.getExpressNumber());
}
}
// 杩囨护鍙繚鐣欏彂璐ц褰�
- products = products.stream().filter(product -> "宸插彂璐�".equals(product.getShippingStatus())).collect(Collectors.toList());
+ products = products.stream().filter(product -> "瀹℃牳閫氳繃".equals(product.getShippingStatus())).collect(Collectors.toList());
if (!products.isEmpty()) {
salesLedger.setHasChildren(true);
salesLedger.setProductData(products);
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index 8d16029..0a84bf9 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -26,6 +26,7 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -89,10 +90,14 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public boolean delete(List<Long> ids) {
List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>()
.in(ShippingInfo::getId, ids));
if (CollectionUtils.isEmpty(shippingInfos)) return false;
+ // 鍙湁寰呭鏍哥姸鎬佹墠鑳藉垹闄�
+ boolean allPending = shippingInfos.stream().allMatch(s -> "寰呭鏍�".equals(s.getStatus()));
+ if (!allPending) throw new RuntimeException("鍙湁寰呭鏍哥姸鎬佹墠鑳藉垹闄�");
// 鍒犻櫎闄勪欢
commonFileService.deleteByBusinessIds(ids, FileNameType.SHIP.getValue());
// 鍒犻櫎鍙戣揣瀹℃壒
diff --git a/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java b/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java
index 992860e..96ed799 100644
--- a/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java
+++ b/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsDetailsVo.java
@@ -24,10 +24,10 @@
@Schema(description = "鍚堝悓閲戦")
private BigDecimal contractAmount;
- @Schema(description = "鏀舵閲戦")
- private BigDecimal receiptPaymentAmount;
+ @Schema(description = "宸插嚭搴撻噾棰�")
+ private BigDecimal shippedAmount;
- @Schema(description = "搴旀敹閲戦")
- private BigDecimal receiptableAmount;
+ @Schema(description = "鏈嚭搴撻噾棰�")
+ private BigDecimal unshippedAmount;
}
diff --git a/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java b/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java
index 7b8fc1a..a88b6ea 100644
--- a/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java
+++ b/src/main/java/com/ruoyi/sales/vo/CustomerTransactionsVo.java
@@ -16,15 +16,12 @@
private String customerName;
@Schema(description = "鍚堝悓鎬婚噾棰�")
- //璇ュ鎴烽攢鍞悎鍚岀疮璁¢噾棰�
private BigDecimal contractAmounts;
- @Schema(description = "鏀舵閲戦")
- //璇ュ鎴烽攢鍞敹娆剧疮璁¢噾棰�
- private BigDecimal receiptPaymentAmount;
+ @Schema(description = "宸插嚭搴撻噾棰�")
+ private BigDecimal shippedAmount;
- @Schema(description = "搴旀敹閲戦")
- //璇ュ鎴烽攢鍞簲鏀剁疮璁¢噾棰�=璐㈠姟(鍑哄簱-閫�璐�)
- private BigDecimal receiptableAmount;
+ @Schema(description = "鏈嚭搴撻噾棰�")
+ private BigDecimal unshippedAmount;
}
diff --git a/src/main/java/com/ruoyi/staff/controller/HolidayApplicationController.java b/src/main/java/com/ruoyi/staff/controller/HolidayApplicationController.java
index 6498ef9..ab70220 100644
--- a/src/main/java/com/ruoyi/staff/controller/HolidayApplicationController.java
+++ b/src/main/java/com/ruoyi/staff/controller/HolidayApplicationController.java
@@ -1,6 +1,8 @@
package com.ruoyi.staff.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.staff.pojo.HolidayApplication;
import com.ruoyi.staff.service.HolidayApplicationService;
@@ -23,6 +25,7 @@
/**
* 鏂板璇峰亣鐢宠
*/
+ @Log(title = "鏂板璇峰亣鐢宠", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody HolidayApplication holidayApplication){
return AjaxResult.success(holidayApplicationService.save(holidayApplication));
@@ -30,6 +33,7 @@
/**
* 淇敼璇峰亣鐢宠
*/
+ @Log(title = "淇敼璇峰亣鐢宠", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult update(@RequestBody HolidayApplication holidayApplication){
return AjaxResult.success(holidayApplicationService.updateById(holidayApplication));
@@ -37,6 +41,7 @@
/**
* 鍒犻櫎璇峰亣鐢宠
*/
+ @Log(title = "鍒犻櫎璇峰亣鐢宠", businessType = BusinessType.DELETE)
@DeleteMapping("/delete/{id}")
public AjaxResult delete(@PathVariable("id") Long id){
return AjaxResult.success(holidayApplicationService.removeById(id));
diff --git a/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
index 7b4ba61..be2c171 100644
--- a/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
+++ b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
@@ -1,6 +1,8 @@
package com.ruoyi.staff.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.staff.pojo.PersonalAttendanceLocationConfig;
import com.ruoyi.staff.service.PersonalAttendanceLocationConfigService;
@@ -28,6 +30,7 @@
private final PersonalAttendanceLocationConfigService personalAttendanceLocationConfigService;
@Operation(summary = "鏂板/淇敼浜哄憳鎵撳崱瑙勫垯閰嶇疆")
+ @Log(title = "鏂板/淇敼浜哄憳鎵撳崱瑙勫垯閰嶇疆", businessType = BusinessType.INSERT)
@PostMapping("/add")
public R add(@RequestBody PersonalAttendanceLocationConfig personalAttendanceLocationConfig){
@@ -47,6 +50,7 @@
@Operation(summary = "鍒犻櫎浜哄憳鎵撳崱瑙勫垯閰嶇疆")
+ @Log(title = "鍒犻櫎浜哄憳鎵撳崱瑙勫垯閰嶇疆", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public R del(@RequestBody List<Integer> ids) {
return R.ok(personalAttendanceLocationConfigService.removeBatchByIds(ids));
diff --git a/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceRecordsController.java b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceRecordsController.java
index 37902fa..10b8481 100644
--- a/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceRecordsController.java
+++ b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceRecordsController.java
@@ -1,6 +1,8 @@
package com.ruoyi.staff.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.staff.dto.PersonalAttendanceRecordsDto;
import com.ruoyi.staff.pojo.PersonalAttendanceRecords;
@@ -27,6 +29,7 @@
@Resource
private PersonalAttendanceRecordsService personalAttendanceRecordsService;
+ @Log(title = "涓汉鑰冨嫟璁板綍", businessType = BusinessType.INSERT)
@Operation(summary = "鏂板鎵撳崱绛惧埌")
@PostMapping("")
public AjaxResult add(@RequestBody PersonalAttendanceRecordsDto personalAttendanceRecordsDto){
@@ -45,6 +48,7 @@
return AjaxResult.success(personalAttendanceRecordsService.todayInfo(personalAttendanceRecordsDto));
}
+ @Log(title = "涓汉鑰冨嫟璁板綍", businessType = BusinessType.EXPORT)
@Operation(summary = "瀵煎嚭鎵撳崱绛惧埌")
@PostMapping("/export")
public void export(HttpServletResponse response, PersonalAttendanceRecordsDto personalAttendanceRecordsDto) {
diff --git a/src/main/java/com/ruoyi/staff/controller/PersonalShiftController.java b/src/main/java/com/ruoyi/staff/controller/PersonalShiftController.java
index 2f1496b..fea072e 100644
--- a/src/main/java/com/ruoyi/staff/controller/PersonalShiftController.java
+++ b/src/main/java/com/ruoyi/staff/controller/PersonalShiftController.java
@@ -4,6 +4,8 @@
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.staff.dto.PerformanceShiftAddDto;
import com.ruoyi.staff.pojo.PersonalAttendanceLocationConfig;
@@ -42,6 +44,7 @@
private PersonalShiftService personalShiftService;
@Operation(summary = "浜哄憳鎺掔彮")
+ @Log(title = "鏂板浜哄憳鎺掔彮", businessType = BusinessType.INSERT)
@PostMapping("/add")
public R add(@RequestBody PerformanceShiftAddDto performanceShiftAddDto){
return R.ok(personalShiftService.performanceShiftAdd(performanceShiftAddDto));
@@ -60,6 +63,7 @@
}
@Operation(summary = "鐝鐘舵�佷慨鏀�")
+ @Log(title = "淇敼鐝鐘舵��", businessType = BusinessType.UPDATE)
@PostMapping("update")
public R performanceShiftUpdate(@RequestBody PersonalShift personalShift) {
personalShiftService.performanceShiftUpdate(personalShift);
@@ -67,6 +71,7 @@
}
@Operation(summary = "瀵煎嚭")
+ @Log(title = "瀵煎嚭浜哄憳鎺掔彮", businessType = BusinessType.EXPORT)
@GetMapping("export")
public void exportToExcel(@NotNull(message = "鏃堕棿涓嶈兘涓虹┖锛�") String time, String userName, Integer sysDeptId, Boolean isMonth, HttpServletResponse response) throws Exception {
ServletOutputStream out = response.getOutputStream();
diff --git a/src/main/java/com/ruoyi/staff/controller/StaffLeaveController.java b/src/main/java/com/ruoyi/staff/controller/StaffLeaveController.java
index 64a35d9..e2a5893 100644
--- a/src/main/java/com/ruoyi/staff/controller/StaffLeaveController.java
+++ b/src/main/java/com/ruoyi/staff/controller/StaffLeaveController.java
@@ -1,6 +1,8 @@
package com.ruoyi.staff.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.staff.dto.StaffLeaveDto;
import com.ruoyi.staff.service.StaffLeaveService;
@@ -37,6 +39,7 @@
* @param staffLeaveDto
* @return
*/
+ @Log(title = "鏂板绂昏亴璁板綍", businessType = BusinessType.INSERT)
@PostMapping("")
public AjaxResult add(@RequestBody StaffLeaveDto staffLeaveDto) {
return AjaxResult.success(staffLeaveService.add(staffLeaveDto));
@@ -48,6 +51,7 @@
* @param staffLeaveDto
* @return
*/
+ @Log(title = "淇敼绂昏亴璁板綍", businessType = BusinessType.UPDATE)
@PutMapping("/{id}")
public AjaxResult update(@PathVariable("id") Long id, @RequestBody StaffLeaveDto staffLeaveDto) {
return AjaxResult.success(staffLeaveService.update(id, staffLeaveDto));
@@ -58,6 +62,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎绂昏亴璁板綍", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public AjaxResult del(@RequestBody List<Integer> ids) {
if(CollectionUtils.isEmpty(ids)){
@@ -70,6 +75,7 @@
* 绂昏亴瀵煎嚭
* @param staffLeaveDto
*/
+ @Log(title = "瀵煎嚭绂昏亴璁板綍", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, StaffLeaveDto staffLeaveDto) {
staffLeaveService.export(response, staffLeaveDto);
diff --git a/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java b/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
index ab27019..9dfa6b6 100644
--- a/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
+++ b/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
@@ -57,6 +57,7 @@
* @param staffOnJob
* @return
*/
+ @Log(title = "鍦ㄨ亴鍛樺伐", businessType = BusinessType.INSERT)
@PostMapping("")
public AjaxResult add(@RequestBody StaffOnJobDto staffOnJob) {
return AjaxResult.success(staffOnJobService.add(staffOnJob));
@@ -67,6 +68,7 @@
* @param staffOnJobDto
* @return
*/
+ @Log(title = "鍦ㄨ亴鍛樺伐", businessType = BusinessType.UPDATE)
@PutMapping("/{id}")
public AjaxResult update(@PathVariable("id") Long id, @RequestBody StaffOnJobDto staffOnJobDto) {
return AjaxResult.success(staffOnJobService.update(id, staffOnJobDto));
@@ -77,6 +79,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍦ㄨ亴鍛樺伐", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public AjaxResult delStaffOnJobs(@RequestBody List<Integer> ids) {
if(CollectionUtils.isEmpty(ids)){
@@ -101,12 +104,14 @@
* @param staffContract
* @return
*/
+ @Log(title = "鍦ㄨ亴鍛樺伐", businessType = BusinessType.UPDATE)
@PostMapping("/renewContract/{id}")
public AjaxResult renewContract(@PathVariable Long id, @RequestBody StaffContract staffContract) {
return AjaxResult.success(staffOnJobService.renewContract(id, staffContract));
}
@Operation(summary = "涓嬭浇妯℃澘")
+ @Log(title = "鍦ㄨ亴鍛樺伐", businessType = BusinessType.EXPORT)
@PostMapping("/downloadTemplate")
public void downloadTemplate(HttpServletResponse response) {
ExcelUtil<StaffOnJobExcelDto> util = new ExcelUtil<>(StaffOnJobExcelDto.class);
@@ -131,6 +136,7 @@
* @param response
* @param staffOnJob
*/
+ @Log(title = "鍦ㄨ亴鍛樺伐", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void staffOnJobExport(HttpServletResponse response,StaffOnJob staffOnJob) {
staffOnJobService.staffOnJobExport(response, staffOnJob);
@@ -141,6 +147,7 @@
* @param response
* @param staffOnJob
*/
+ @Log(title = "鍦ㄨ亴鍛樺伐", businessType = BusinessType.EXPORT)
@PostMapping("/exportCopy")
@Operation(summary = "word妯℃澘鍚堝悓鍦ㄨ亴鍛樺伐瀵煎嚭")
public AjaxResult exportCopy(HttpServletResponse response,@RequestBody StaffOnJob staffOnJob) throws Exception{
diff --git a/src/main/java/com/ruoyi/staff/controller/StaffSchedulingController.java b/src/main/java/com/ruoyi/staff/controller/StaffSchedulingController.java
index d195e9c..c48d766 100644
--- a/src/main/java/com/ruoyi/staff/controller/StaffSchedulingController.java
+++ b/src/main/java/com/ruoyi/staff/controller/StaffSchedulingController.java
@@ -35,18 +35,21 @@
return AjaxResult.success(staffSchedulingService.listPage(vo));
}
+ @Log(title = "鍛樺伐鎺掔彮", businessType = BusinessType.INSERT)
@PostMapping("/save")
public AjaxResult save(@RequestBody @Validated SaveStaffSchedulingDto saveStaffSchedulingDto){
staffSchedulingService.saveStaffScheduling(saveStaffSchedulingDto);
return AjaxResult.success();
}
+ @Log(title = "鍛樺伐鎺掔彮", businessType = BusinessType.DELETE)
@DeleteMapping("/delByIds")
public AjaxResult delByIds(@RequestBody List<Integer> ids){
staffSchedulingService.removeByIds(ids);
return AjaxResult.success();
}
+ @Log(title = "鍛樺伐鎺掔彮", businessType = BusinessType.DELETE)
@DeleteMapping("/del/{id}")
public AjaxResult del(@PathVariable("id") Integer id){
staffSchedulingService.removeById(id);
diff --git a/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java b/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java
index 3a002e0..0798cdc 100644
--- a/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java
+++ b/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.stock.dto.StockInventoryDto;
import com.ruoyi.stock.dto.StockUninventoryDto;
@@ -36,6 +38,7 @@
@PostMapping("/addstockUninventory")
@Operation(summary = "鏂板搴撳瓨")
+ @Log(title = "鏂板涓嶅悎鏍煎簱瀛�", businessType = BusinessType.INSERT)
public R addstockUninventory(@RequestBody StockUninventoryDto stockUninventoryDto) {
stockUninventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.CUSTOMIZATION_UNSTOCK_IN.getCode()));
stockUninventoryDto.setRecordId(0L);
@@ -45,6 +48,7 @@
@PostMapping("/subtractstockUninventory")
@Operation(summary = "鎵e噺搴撳瓨")
+ @Log(title = "鎵e噺涓嶅悎鏍煎簱瀛�", businessType = BusinessType.UPDATE)
public R subtractstockUninventory(@RequestBody StockUninventoryDto stockUninventoryDto) {
stockUninventoryDto.setRecordType(String.valueOf(StockOutQualifiedRecordTypeEnum.CUSTOMIZATION_UNSTOCK_OUT.getCode()));
stockUninventoryDto.setRecordId(0L);
@@ -53,6 +57,7 @@
@PostMapping("/addStockInRecordOnly")
@Operation(summary = "鏂板鍏ュ簱璁板綍锛堜粎鍒涘缓璁板綍锛屼笉璋冩暣搴撳瓨锛�")
+ @Log(title = "鏂板涓嶅悎鏍煎簱瀛樺叆搴撹褰�", businessType = BusinessType.INSERT)
public R addStockInRecordOnly(@RequestBody StockUninventoryDto stockUninventoryDto) {
stockUninventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.CUSTOMIZATION_UNSTOCK_IN.getCode()));
stockUninventoryDto.setRecordId(0L);
@@ -61,6 +66,7 @@
@PostMapping("/addStockOutRecordOnly")
@Operation(summary = "鏂板鍑哄簱璁板綍锛堜粎鍒涘缓璁板綍锛屼笉璋冩暣搴撳瓨锛�")
+ @Log(title = "鏂板涓嶅悎鏍煎簱瀛樺嚭搴撹褰�", businessType = BusinessType.INSERT)
public R addStockOutRecordOnly(@RequestBody StockUninventoryDto stockUninventoryDto) {
stockUninventoryDto.setRecordType(String.valueOf(StockOutQualifiedRecordTypeEnum.CUSTOMIZATION_UNSTOCK_OUT.getCode()));
stockUninventoryDto.setRecordId(0L);
@@ -69,6 +75,7 @@
@PostMapping("/exportStockUninventory")
@Operation(summary = "瀵煎嚭搴撳瓨")
+ @Log(title = "瀵煎嚭涓嶅悎鏍煎簱瀛�", businessType = BusinessType.EXPORT)
public void exportStockUninventory(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) {
stockUninventoryService.exportStockUninventory(response,stockUninventoryDto);
}
@@ -76,12 +83,14 @@
@PostMapping("/frozenStock")
@Operation(summary = "鍐荤粨搴撳瓨")
+ @Log(title = "鍐荤粨涓嶅悎鏍煎簱瀛�", businessType = BusinessType.UPDATE)
public R frozenStock(@RequestBody StockInventoryDto stockInventoryDto) {
return R.ok(stockUninventoryService.frozenStock(stockInventoryDto));
}
@PostMapping("/thawStock")
@Operation(summary = "瑙e喕搴撳瓨")
+ @Log(title = "瑙e喕涓嶅悎鏍煎簱瀛�", businessType = BusinessType.UPDATE)
public R thawStock(@RequestBody StockInventoryDto stockInventoryDto) {
return R.ok(stockUninventoryService.thawStock(stockInventoryDto));
}
diff --git a/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java b/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
index 17d7e77..f4f03ba 100644
--- a/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
+++ b/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
@@ -40,4 +40,7 @@
@Schema(description = "璁板綍ID鍒楄〃")
private List<Long> ids;
+ @Schema(description = "婧愬崟鍙�")
+ private String sourceOrderNo;
+
}
diff --git a/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java b/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
index 6b8a807..f9525ee 100644
--- a/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
+++ b/src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
@@ -7,14 +7,17 @@
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
+import java.io.Serial;
+import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@TableName("stock_in_record")
@Schema(name = "鍏ュ簱绠$悊")
-public class StockInRecord {
+public class StockInRecord implements Serializable {
+ @Serial
private static final long serialVersionUID = 1L;
/**
* 搴忓彿
@@ -43,6 +46,10 @@
@Schema(description = "澶囨敞")
private String remark;
+ @Schema(description = "棰勮鏁伴噺")
+ @TableField(exist = false)
+ private BigDecimal warnNum;
+
@Schema(description = "绫诲瀷 0鍚堟牸鍏ュ簱 1涓嶅悎鏍煎叆搴�")
private String type;
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
index e718611..5207cc9 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -69,9 +69,56 @@
throw new BaseException("璇ュ叆搴撹褰曚笉瀛樺湪,鏃犳硶鏇存柊!!!");
}
+ // 璁板綍淇敼鍓嶇殑 batch_no
+ String oldBatchNo = stockInRecord.getBatchNo();
+ String newBatchNo = stockInRecordDto.getBatchNo();
+
String[] ignoreProperties = {"id", "inbound_batches"};//鎺掗櫎id灞炴��
BeanUtils.copyProperties(stockInRecordDto, stockInRecord, ignoreProperties);
- return stockInRecordMapper.updateById(stockInRecord);
+ int result = stockInRecordMapper.updateById(stockInRecord);
+
+ // 濡傛灉 batch_no 鍙戠敓鍙樺寲锛岄渶瑕佸悓姝ユ洿鏂板叧鑱旇〃
+ if (newBatchNo != null && !newBatchNo.equals(oldBatchNo)) {
+ updateRelatedBatchNo(stockInRecord, oldBatchNo, newBatchNo);
+ }
+
+ return result;
+ }
+
+ /**
+ * 鍚屾鏇存柊鍏宠仈琛ㄧ殑 batch_no
+ * @param stockInRecord 鍏ュ簱璁板綍
+ * @param oldBatchNo 淇敼鍓嶇殑鎵瑰彿
+ * @param newBatchNo 淇敼鍚庣殑鎵瑰彿
+ */
+ private void updateRelatedBatchNo(StockInRecord stockInRecord, String oldBatchNo, String newBatchNo) {
+ // 1. 鏇存柊 stock_inventory 琛紙鍚堟牸搴撳瓨锛�
+ LambdaQueryWrapper<StockInventory> inventoryEq = new LambdaQueryWrapper<StockInventory>()
+ .eq(StockInventory::getProductModelId, stockInRecord.getProductModelId());
+ if (StringUtils.isEmpty(oldBatchNo)) {
+ inventoryEq.isNull(StockInventory::getBatchNo);
+ } else {
+ inventoryEq.eq(StockInventory::getBatchNo, oldBatchNo);
+ }
+ StockInventory stockInventory = stockInventoryMapper.selectOne(inventoryEq);
+ if (stockInventory != null) {
+ stockInventory.setBatchNo(newBatchNo);
+ stockInventoryMapper.updateById(stockInventory);
+ }
+
+ // 2. 鏇存柊 stock_uninventory 琛紙涓嶅悎鏍煎簱瀛橈級
+ LambdaQueryWrapper<StockUninventory> uninventoryEq = new LambdaQueryWrapper<StockUninventory>()
+ .eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId());
+ if (StringUtils.isEmpty(oldBatchNo)) {
+ uninventoryEq.isNull(StockUninventory::getBatchNo);
+ } else {
+ uninventoryEq.eq(StockUninventory::getBatchNo, oldBatchNo);
+ }
+ StockUninventory stockUninventory = stockUninventoryMapper.selectOne(uninventoryEq);
+ if (stockUninventory != null) {
+ stockUninventory.setBatchNo(newBatchNo);
+ stockUninventoryMapper.updateById(stockUninventory);
+ }
}
@Override
@@ -238,10 +285,12 @@
stockInventoryDto.setBatchNo(stockInRecord.getBatchNo());
stockInventoryDto.setQualitity(stockInRecord.getStockInNum());
stockInventoryDto.setRemark(stockInRecord.getRemark());
+ stockInventoryDto.setWarnNum(stockInRecord.getWarnNum());
if (stockInventory == null) {
stockInventoryMapper.insert(new StockInventory() {{
setProductModelId(stockInRecord.getProductModelId());
setQualitity(stockInRecord.getStockInNum());
+ setWarnNum(stockInRecord.getWarnNum());
setBatchNo(stockInRecord.getBatchNo());
setRemark(stockInRecord.getRemark());
setVersion(1);
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index 24605ba..ba74248 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -166,6 +166,7 @@
stockInRecordDto.setStockInNum(stockInventoryDto.getQualitity());
stockInRecordDto.setBatchNo(batchNo);
stockInRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
+ stockInRecordDto.setWarnNum(stockInventoryDto.getWarnNum());
stockInRecordDto.setType("0");
stockInRecordDto.setRemark(stockInventoryDto.getRemark());
stockInRecordService.add(stockInRecordDto);
diff --git a/src/main/java/com/ruoyi/technology/controller/TechnologyBomStructureController.java b/src/main/java/com/ruoyi/technology/controller/TechnologyBomStructureController.java
index 3d9048e..5b8ec34 100644
--- a/src/main/java/com/ruoyi/technology/controller/TechnologyBomStructureController.java
+++ b/src/main/java/com/ruoyi/technology/controller/TechnologyBomStructureController.java
@@ -1,5 +1,7 @@
package com.ruoyi.technology.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.technology.bean.dto.TechnologyBomStructureDto;
import com.ruoyi.technology.bean.vo.TechnologyBomStructureVo;
@@ -21,6 +23,7 @@
@PostMapping
@Operation(summary = "鏂板鎴栦慨鏀笲OM缁撴瀯")
+ @Log(title = "鏂板鎴栦慨鏀笲OM缁撴瀯", businessType = BusinessType.INSERT)
public R addOrUpdate(@RequestBody TechnologyBomStructureDto technologyBomStructureDto) {
return R.ok(technologyBomStructureService.addTechnologyBomStructure(technologyBomStructureDto));
}
diff --git a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingController.java b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingController.java
index 9ab62e1..768de4e 100644
--- a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingController.java
+++ b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.technology.bean.dto.TechnologyRoutingDto;
import com.ruoyi.technology.bean.vo.TechnologyRoutingVo;
@@ -43,8 +45,9 @@
/**
* 鏂板宸ヨ壓璺嚎銆�
*/
- @PostMapping("/addTechRoute")
+ @Log(title = "宸ヨ壓璺嚎", businessType = BusinessType.INSERT)
@Operation(summary = "鏂板宸ヨ壓璺嚎")
+ @PostMapping("/addTechRoute")
public R add(@RequestBody TechnologyRouting technologyRouting) {
return R.ok(technologyRoutingService.saveTechnologyRouting(technologyRouting));
}
@@ -52,8 +55,9 @@
/**
* 淇敼宸ヨ壓璺嚎銆�
*/
- @PutMapping("/editTechRoute")
+ @Log(title = "宸ヨ壓璺嚎", businessType = BusinessType.UPDATE)
@Operation(summary = "淇敼宸ヨ壓璺嚎")
+ @PutMapping("/editTechRoute")
public R edit(@RequestBody TechnologyRouting technologyRouting) {
return R.ok(technologyRoutingService.updateTechnologyRouting(technologyRouting));
}
@@ -61,8 +65,9 @@
/**
* 鎵归噺鍒犻櫎宸ヨ壓璺嚎銆�
*/
- @DeleteMapping("/delete")
+ @Log(title = "宸ヨ壓璺嚎", businessType = BusinessType.DELETE)
@Operation(summary = "鍒犻櫎宸ヨ壓璺嚎")
+ @DeleteMapping("/delete")
public R remove(@RequestBody List<Long> ids) {
return R.ok(technologyRoutingService.removeTechnologyRouting(ids));
}
diff --git a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java
index eea52a0..08ba14d 100644
--- a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java
+++ b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.technology.bean.dto.TechnologyRoutingOperationDto;
import com.ruoyi.technology.bean.vo.TechnologyRoutingOperationVo;
@@ -41,26 +43,30 @@
return R.ok(technologyRoutingOperationService.getTechnologyRoutingOperationInfo(id));
}
- @PostMapping("/add")
+ @Log(title = "宸ヨ壓璺嚎宸ュ簭", businessType = BusinessType.INSERT)
@Operation(summary = "鏂板宸ヨ壓璺嚎宸ュ簭")
+ @PostMapping("/add")
public R add(@RequestBody TechnologyRoutingOperation technologyRoutingOperation) {
return R.ok(technologyRoutingOperationService.saveTechnologyRoutingOperation(technologyRoutingOperation));
}
- @PutMapping
+ @Log(title = "宸ヨ壓璺嚎宸ュ簭", businessType = BusinessType.UPDATE)
@Operation(summary = "淇敼宸ヨ壓璺嚎宸ュ簭")
+ @PutMapping
public R edit(@RequestBody TechnologyRoutingOperation technologyRoutingOperation) {
return R.ok(technologyRoutingOperationService.updateById(technologyRoutingOperation));
}
- @DeleteMapping("/{id}")
+ @Log(title = "宸ヨ壓璺嚎宸ュ簭", businessType = BusinessType.DELETE)
@Operation(summary = "鍒犻櫎宸ヨ壓璺嚎宸ュ簭")
+ @DeleteMapping("/{id}")
public R remove(@PathVariable("id") Long id) {
return R.ok(technologyRoutingOperationService.removeTechnologyRoutingOperation(id));
}
- @PostMapping ("/sort")
+ @Log(title = "宸ヨ壓璺嚎宸ュ簭", businessType = BusinessType.UPDATE)
@Operation(summary = "鎺掑簭宸ヨ壓璺嚎宸ュ簭")
+ @PostMapping ("/sort")
public R sort(@RequestBody TechnologyRoutingOperation technologyRoutingOperation) {
return R.ok(technologyRoutingOperationService.sort(technologyRoutingOperation));
}
diff --git a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java
index f685471..f8d814b 100644
--- a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java
+++ b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.technology.bean.dto.TechnologyRoutingOperationParamDto;
import com.ruoyi.technology.bean.dto.TechnologyRoutingOperationParamSyncDto;
@@ -44,24 +46,28 @@
@PostMapping("/add")
@Operation(summary = "鏂板鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟")
+ @Log(title = "鏂板宸ヨ壓璺嚎宸ュ簭鍙傛暟", businessType = BusinessType.INSERT)
public R<Boolean> add(@RequestBody TechnologyRoutingOperationParam technologyRoutingOperationParam) {
return R.ok(technologyRoutingOperationParamService.saveTechnologyRoutingOperationParam(technologyRoutingOperationParam));
}
@PutMapping
@Operation(summary = "淇敼鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟")
+ @Log(title = "淇敼宸ヨ壓璺嚎宸ュ簭鍙傛暟", businessType = BusinessType.UPDATE)
public R<Boolean> edit(@RequestBody TechnologyRoutingOperationParam technologyRoutingOperationParam) {
return R.ok(technologyRoutingOperationParamService.saveTechnologyRoutingOperationParam(technologyRoutingOperationParam));
}
@DeleteMapping("/{id}")
@Operation(summary = "鍒犻櫎鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟")
+ @Log(title = "鍒犻櫎宸ヨ壓璺嚎宸ュ簭鍙傛暟", businessType = BusinessType.DELETE)
public R<Boolean> remove(@PathVariable("id") Long id) {
return R.ok(technologyRoutingOperationParamService.removeTechnologyRoutingOperationParam(id));
}
@PostMapping("/sync")
@Operation(summary = "鎸夊伐鑹鸿矾绾垮伐搴忓悓姝ュ伐搴忓弬鏁�")
+ @Log(title = "鍚屾宸ヨ壓璺嚎宸ュ簭鍙傛暟", businessType = BusinessType.UPDATE)
public R<Integer> sync(@RequestBody TechnologyRoutingOperationParamSyncDto syncDto) {
return R.ok(technologyRoutingOperationParamService.syncTechnologyRoutingOperationParam(syncDto));
}
diff --git a/src/main/java/com/ruoyi/warehouse/controller/DocumentationFileController.java b/src/main/java/com/ruoyi/warehouse/controller/DocumentationFileController.java
index f272150..9ce000b 100644
--- a/src/main/java/com/ruoyi/warehouse/controller/DocumentationFileController.java
+++ b/src/main/java/com/ruoyi/warehouse/controller/DocumentationFileController.java
@@ -1,5 +1,7 @@
package com.ruoyi.warehouse.controller;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.warehouse.pojo.DocumentationFile;
import com.ruoyi.warehouse.service.DocumentationFileService;
@@ -25,6 +27,7 @@
* @param documentationFile
* @return
*/
+ @Log(title = "鏂板鏂囨。鏂囦欢", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody DocumentationFile documentationFile) {
return AjaxResult.success(documentationFileService.save(documentationFile));
@@ -35,6 +38,7 @@
* @param ids
* @return
*/
+ @Log(title = "鍒犻櫎鏂囨。鏂囦欢", businessType = BusinessType.DELETE)
@DeleteMapping("/del")
public AjaxResult delDocumentationFile(@RequestBody List<Long> ids) {
if(CollectionUtils.isEmpty(ids)){
diff --git a/src/main/resources/application-xcdq.yml b/src/main/resources/application-xcdq.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/main/resources/application-xcdq.yml
diff --git a/src/main/resources/mapper/approve/ApproveProcessMapper.xml b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
index fef06f7..057cefb 100644
--- a/src/main/resources/mapper/approve/ApproveProcessMapper.xml
+++ b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
@@ -20,23 +20,28 @@
<result property="tenantId" column="tenant_id" />
<result property="approveType" column="approve_type" />
<result property="approveRemark" column="approve_remark" />
+ <result property="startDateTime" column="start_date_time" />
+ <result property="endDateTime" column="end_date_time" />
</resultMap>
<sql id="Base_Column_List">
id,approve_id,approve_user,approve_dept_id,approve_dept_name,approve_user_ids,
approve_user_names,approve_reason,approve_time,approve_over_time,approve_status,
- approve_delete,tenant_id,approve_type,approve_remark
+ approve_delete,tenant_id,approve_type,approve_remark,start_date_time,end_date_time
</sql>
+
<select id="listPage" resultType="com.ruoyi.approve.vo.ApproveProcessVo">
select * from approve_process where approve_delete = 0
<if test="req.approveId != null and req.approveId != ''">
and approve_id like concat('%',#{req.approveId},'%')
</if>
- <if test="req.approveStatus != null or req.approveStatus == 0">
+ <if test="req.approveStatus != null">
and approve_status = #{req.approveStatus}
</if>
<if test="req.approveType != null ">
and approve_type = #{req.approveType}
</if>
+ order by approve_time desc
</select>
+
</mapper>
diff --git a/src/main/resources/mapper/basic/CustomerMapper.xml b/src/main/resources/mapper/basic/CustomerMapper.xml
index 8117c66..99a5a28 100644
--- a/src/main/resources/mapper/basic/CustomerMapper.xml
+++ b/src/main/resources/mapper/basic/CustomerMapper.xml
@@ -9,9 +9,9 @@
<select id="listPage" resultType="com.ruoyi.basic.vo.CustomerVo">
select
c.*,
- u.user_name usage_user_name,
+ u.nick_name as usage_user_name,
(
- select group_concat(u2.user_name separator ', ')
+ select group_concat(u2.nick_name separator ', ')
from customer_user cu
left join sys_user u2 on cu.user_id = u2.user_id
where cu.customer_id = c.id
@@ -107,14 +107,14 @@
</if>
</where>
</select>
+
<select id="customewTransactions" resultType="com.ruoyi.sales.vo.CustomerTransactionsVo">
select T1.customer_id,
c.customer_name,
T1.contractAmounts,
- IFNULL(T2.receiptPaymentAmount, 0) AS receiptPaymentAmount,
- IFNULL(T3.outboundAmount, 0) - IFNULL(T4.returnAmount, 0) AS receiptableAmount
+ IFNULL(T3.outboundAmount, 0) AS shippedAmount,
+ GREATEST(T1.contractAmounts - IFNULL(T3.outboundAmount, 0), 0) AS unshippedAmount
from (select customer_id, sum(contract_amount) as contractAmounts from sales_ledger group by customer_id) T1
- left join (select customer_id, sum(collection_amount) as receiptPaymentAmount from account_sales_collection group by customer_id) T2 on T1.customer_id = T2.customer_id
left join (
SELECT
sl.customer_id,
@@ -128,16 +128,6 @@
and slp.type = 1
group by sl.customer_id
) T3 on T3.customer_id=T1.customer_id
- left join (
- select
- sl.customer_id,
- sum(rm.refund_amount) as returnAmount
- from return_management rm
- left join shipping_info si on rm.shipping_id = si.id
- left join sales_ledger sl on si.sales_ledger_id = sl.id
- where rm.status=1
- group by sl.customer_id
- ) T4 on T4.customer_id=T1.customer_id
left join customer c on T1.customer_id = c.id
<where>
<if test="customerName!=null and customerName!=''">
@@ -145,27 +135,16 @@
</if>
</where>
</select>
+
<select id="customewTransactionsDetails"
resultType="com.ruoyi.sales.vo.CustomerTransactionsDetailsVo">
select sl.id salesLedgerId,
sl.sales_contract_no,
sl.execution_date,
sl.contract_amount,
- IFNULL(T1.receiptPaymentAmount, 0) AS receiptPaymentAmount,
- IFNULL(T2.outboundAmount, 0) - IFNULL(T3.returnAmount, 0) AS receiptableAmount
+ IFNULL(T2.outboundAmount, 0) AS shippedAmount,
+ GREATEST(sl.contract_amount - IFNULL(T2.outboundAmount, 0), 0) AS unshippedAmount
from sales_ledger sl
- left join (
- select
- sl.id,
- sum(ascc.collection_amount) as receiptPaymentAmount
- from account_sales_collection ascc
- left join stock_out_record sor on FIND_IN_SET(sor.id, ascc.stock_out_record_ids) > 0
- left join shipping_info s on sor.record_id = s.id
- LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
- WHERE sor.record_type='13'
- and sor.approval_status=1
- group by sl.id
- )T1 on T1.id = sl.id
left join (
SELECT
sl.id,
@@ -179,15 +158,6 @@
and slp.type = 1
group by sl.id
)T2 on T2.id = sl.id
- left join (
- select sl.id,
- sum(rm.refund_amount) as returnAmount
- from return_management rm
- left join shipping_info si on rm.shipping_id = si.id
- left join sales_ledger sl on si.sales_ledger_id = sl.id
- where rm.status=1
- group by sl.id
- )T3 on T3.id = sl.id
where sl.customer_id = #{customerId}
</select>
</mapper>
diff --git a/src/main/resources/mapper/basic/SupplierManageMapper.xml b/src/main/resources/mapper/basic/SupplierManageMapper.xml
index 5c5af54..6f3ec54 100644
--- a/src/main/resources/mapper/basic/SupplierManageMapper.xml
+++ b/src/main/resources/mapper/basic/SupplierManageMapper.xml
@@ -68,95 +68,69 @@
</if>
</where>
</select>
+
<select id="supplierTransactions" resultType="com.ruoyi.purchase.vo.SupplierTransactionsVo">
- select T1.supplier_id,
+ SELECT T1.supplier_id,
sm.supplier_name,
T1.contractAmounts,
- IFNULL(T2.paymentAmount, 0) AS paymentAmount,
- IFNULL(T3.InboundAmount, 0) - IFNULL(T4.returnAmount, 0) AS payableAmount
- from (select supplier_id, sum(contract_amount) as contractAmounts from purchase_ledger group by supplier_id) T1
- left join (select supplier_id, sum(payment_amount) as paymentAmount from account_purchase_payment group by supplier_id) T2 on T1.supplier_id = T2.supplier_id
- left join (
- SELECT
- pl.supplier_id,
- sum(sir.stock_in_num * slp.tax_inclusive_unit_price) AS InboundAmount
- FROM stock_in_record sir
- -- 10 绫诲瀷鎵嶅叧鑱旇川妫�琛�
- LEFT JOIN quality_inspect qi ON sir.record_type = 10 AND sir.record_id = qi.id
- -- 鍔ㄦ�佸叧鑱旈噰璐紙鑷姩閫傞厤 7 鍜� 10锛�
- LEFT JOIN purchase_ledger pl
- ON pl.id = IF(sir.record_type = 7, sir.record_id, qi.purchase_ledger_id)
- -- 浜у搧鍏宠仈涓嶅姩
- LEFT JOIN sales_ledger_product slp ON pl.id = slp.sales_ledger_id
- -- 鏉′欢
- WHERE sir.approval_status = 1 AND slp.type = 2
- AND sir.record_type IN ('7','10')
- group by pl.supplier_id
- ) T3 on T3.supplier_id=T1.supplier_id
- left join (
- select
- supplier_id,
- sum(total_amount) as returnAmount
- from purchase_return_orders pro
- group by supplier_id
- ) T4 on T4.supplier_id=T1.supplier_id
- left join supplier_manage sm on T1.supplier_id = sm.id
+ IFNULL(T3.InboundAmount, 0) AS shippedAmount,
+ T1.contractAmounts - IFNULL(T3.InboundAmount, 0) AS unshippedAmount
+ FROM (SELECT supplier_id, SUM(contract_amount) AS contractAmounts FROM purchase_ledger GROUP BY supplier_id) T1
+ LEFT JOIN (
+ SELECT t.supplier_id,
+ SUM(t.inbound_amount) AS InboundAmount
+ FROM (
+ SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, pl.supplier_id
+ FROM stock_in_record sir
+ INNER JOIN sales_ledger_product slp ON slp.id = sir.record_id
+ INNER JOIN purchase_ledger pl ON pl.id = slp.sales_ledger_id
+ WHERE sir.approval_status = 1 AND sir.record_type = 7 AND slp.type = 2
+ UNION ALL
+ SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, pl.supplier_id
+ FROM stock_in_record sir
+ INNER JOIN quality_inspect qi ON qi.id = sir.record_id
+ INNER JOIN purchase_ledger pl ON pl.id = qi.purchase_ledger_id
+ INNER JOIN sales_ledger_product slp ON slp.sales_ledger_id = pl.id AND slp.product_model_id = sir.product_model_id
+ WHERE sir.approval_status = 1 AND sir.record_type = 10 AND slp.type = 2
+ ) t
+ GROUP BY t.supplier_id
+ ) T3 ON T3.supplier_id = T1.supplier_id
+ LEFT JOIN supplier_manage sm ON T1.supplier_id = sm.id
<where>
<if test="supplierName!=null and supplierName!=''">
AND sm.supplier_name LIKE CONCAT('%',#{supplierName},'%')
</if>
</where>
</select>
+
<select id="supplierTransactionsDetails"
resultType="com.ruoyi.purchase.vo.SupplierTransactionsDetailsVo">
- select pl.id purchaseLedgerId,
+ SELECT pl.id purchaseLedgerId,
pl.purchase_contract_number,
pl.execution_date,
pl.contract_amount,
- IFNULL(T1.paymentAmount, 0) AS paymentAmount,
- IFNULL(T2.InboundAmount, 0) - IFNULL(T3.returnAmount, 0) AS payableAmount
- from purchase_ledger pl
- left join (
- select
- pl.id,
- sum(app.payment_amount) as paymentAmount
- from account_purchase_payment app
- left join account_payment_application apa on app.account_payment_application_id = apa.id
- left join stock_in_record sir on FIND_IN_SET(sir.id, apa.stock_in_record_ids) > 0
- -- 10 绫诲瀷鎵嶅叧鑱旇川妫�琛�
- LEFT JOIN quality_inspect qi ON sir.record_type = 10 AND sir.record_id = qi.id
- -- 鍔ㄦ�佸叧鑱旈噰璐紙鑷姩閫傞厤 7 鍜� 10锛�
- LEFT JOIN purchase_ledger pl
- ON pl.id = IF(sir.record_type = 7, sir.record_id, qi.purchase_ledger_id)
- WHERE sir.approval_status = 1
- AND sir.record_type IN ('7','10')
- group by pl.id
- )T1 on T1.id = pl.id
- left join (
- SELECT
- pl.id,
- sum(sir.stock_in_num * slp.tax_inclusive_unit_price) AS InboundAmount
- FROM stock_in_record sir
- -- 10 绫诲瀷鎵嶅叧鑱旇川妫�琛�
- LEFT JOIN quality_inspect qi ON sir.record_type = 10 AND sir.record_id = qi.id
- -- 鍔ㄦ�佸叧鑱旈噰璐紙鑷姩閫傞厤 7 鍜� 10锛�
- LEFT JOIN purchase_ledger pl
- ON pl.id = IF(sir.record_type = 7, sir.record_id, qi.purchase_ledger_id)
- -- 浜у搧鍏宠仈涓嶅姩
- LEFT JOIN sales_ledger_product slp ON pl.id = slp.sales_ledger_id
- -- 鏉′欢
- WHERE sir.approval_status = 1 AND slp.type = 2
- AND sir.record_type IN ('7','10')
- group by pl.id
- )T2 on T2.id = pl.id
- left join (
- select pl.id,
- sum(pro.total_amount) as returnAmount
- from purchase_return_orders pro
- left join purchase_ledger pl on pro.purchase_ledger_id = pl.id
- group by pl.id
- )T3 on T3.id = pl.id
- where pl.supplier_id = #{supplierId}
+ IFNULL(T2.InboundAmount, 0) AS shippedAmount,
+ pl.contract_amount - IFNULL(T2.InboundAmount, 0) AS unshippedAmount
+ FROM purchase_ledger pl
+ LEFT JOIN (
+ SELECT t.sales_ledger_id,
+ SUM(t.inbound_amount) AS InboundAmount
+ FROM (
+ SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, slp.sales_ledger_id
+ FROM stock_in_record sir
+ INNER JOIN sales_ledger_product slp ON slp.id = sir.record_id
+ WHERE sir.approval_status = 1 AND sir.record_type = 7 AND slp.type = 2
+ UNION ALL
+ SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, slp.sales_ledger_id
+ FROM stock_in_record sir
+ INNER JOIN quality_inspect qi ON qi.id = sir.record_id
+ INNER JOIN purchase_ledger pl2 ON pl2.id = qi.purchase_ledger_id
+ INNER JOIN sales_ledger_product slp ON slp.sales_ledger_id = pl2.id AND slp.product_model_id = sir.product_model_id
+ WHERE sir.approval_status = 1 AND sir.record_type = 10 AND slp.type = 2
+ ) t
+ GROUP BY t.sales_ledger_id
+ ) T2 ON T2.sales_ledger_id = pl.id
+ WHERE pl.supplier_id = #{supplierId}
</select>
</mapper>
diff --git a/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml b/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
index e21669f..99b9bbc 100644
--- a/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
+++ b/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
@@ -26,31 +26,41 @@
left join device_ledger dl on dm.device_ledger_id = dl.id
left join sys_user su on dm.create_user = su.user_id
<where>
- 1 = 1
- <if test="deviceMaintenanceDto.deviceName != null">
- and dl.device_name like concat('%',#{deviceMaintenanceDto.deviceName},'%')
+ <if test="deviceMaintenanceDto.deviceName != null and deviceMaintenanceDto.deviceName != ''">
+ and dl.device_name like concat('%', #{deviceMaintenanceDto.deviceName}, '%')
</if>
- <if test="deviceMaintenanceDto.deviceModel != null">
- and dl.device_model like concat('%',#{deviceMaintenanceDto.deviceModel},'%')
+ <if test="deviceMaintenanceDto.deviceModel != null and deviceMaintenanceDto.deviceModel != ''">
+ and dl.device_model like concat('%', #{deviceMaintenanceDto.deviceModel}, '%')
</if>
<if test="deviceMaintenanceDto.status != null">
and dm.status = #{deviceMaintenanceDto.status}
</if>
- <if test="deviceMaintenanceDto.maintenanceActuallyName != null">
- and dm.maintenance_actually_name like concat('%',#{deviceMaintenanceDto.maintenanceActuallyName},'%')
+ <if test="deviceMaintenanceDto.maintenanceActuallyName != null and deviceMaintenanceDto.maintenanceActuallyName != ''">
+ and dm.maintenance_actually_name like concat('%', #{deviceMaintenanceDto.maintenanceActuallyName}, '%')
</if>
<if test="deviceMaintenanceDto.maintenancePlanTime != null">
- and dm.maintenance_plan_time like concat('%',#{deviceMaintenanceDto.maintenancePlanTime},'%')
+ and dm.maintenance_plan_time = #{deviceMaintenanceDto.maintenancePlanTime}
</if>
<if test="deviceMaintenanceDto.maintenanceActuallyTime != null">
- and dm.maintenance_actually_time like concat('%',#{deviceMaintenanceDto.maintenanceActuallyTime},'%')
- </if>
- <if test="deviceMaintenanceDto.maintenanceActuallyTime != null">
- and dm.maintenance_actually_time >= str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime}, '%Y-%m-%d')
- and dm.maintenance_actually_time < date_add(str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime}, '%Y-%m-%d'), interval 1 day)
+ and dm.maintenance_actually_time >= str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime},
+ '%Y-%m-%d')
+ and dm.maintenance_actually_time <
+ date_add(str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime}, '%Y-%m-%d'), interval 1 day)
</if>
</where>
+ order by
+ <!-- 寰呬繚鍏�(0)浼樺厛鎺掑湪涓婇潰锛屽凡瀹岀粨(1)鍦ㄤ笅闈� -->
+ dm.status asc,
+ case
+ <!-- 褰撶姸鎬佹槸 0锛堝緟淇濆吇锛夋椂锛屾寜璁″垝鏃堕棿鍗囧簭锛屽嵆鏃堕棿鏈�杩滅殑鍗曞瓙鍦ㄦ渶涓婇潰 -->
+ when dm.status = 0 then dm.maintenance_plan_time
+ end asc,
+ case
+ <!-- 褰撶姸鎬佹槸 1锛堝凡瀹岀粨锛夋椂锛屾寜瀹為檯淇濆吇鏃堕棿闄嶅簭锛屾渶杩戝垰淇濆吇瀹岀殑鍗曞瓙鍦ㄥ凡瀹岀粨閲屾帓鏈�鍓� -->
+ when dm.status = 1 then dm.maintenance_actually_time
+ end desc
</select>
+
<select id="detailById" resultType="com.ruoyi.device.vo.DeviceMaintenanceVo">
select dm.id,
dm.device_ledger_id,
diff --git a/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml b/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml
index 5ecf0e9..973e44e 100644
--- a/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml
+++ b/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml
@@ -123,9 +123,9 @@
<if test="endDateTime != null">
and ppo.create_time <= #{endDateTime}
</if>
- <if test="userId != null">
- and ppm.create_user = #{userId}
- </if>
+<!-- <if test="userId != null">-->
+<!-- and ppm.create_user = #{userId}-->
+<!-- </if>-->
<if test="processIds != null and processIds.size() > 0">
and poro.technology_operation_id in
<foreach collection="processIds" item="id" open="(" separator="," close=")">
diff --git a/src/main/resources/mapper/production/ProductionOrderMapper.xml b/src/main/resources/mapper/production/ProductionOrderMapper.xml
index 8e64413..d0529d2 100644
--- a/src/main/resources/mapper/production/ProductionOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductionOrderMapper.xml
@@ -134,7 +134,7 @@
<include refid="ProductionOrderVoColumns" />
<include refid="ProductionOrderVoFrom" />
<include refid="ProductionOrderWhere" />
- order by po.id desc
+ order by po.nps_no desc
</select>
<select id="listProductionOrder" resultMap="ProductionOrderVoResultMap">
diff --git a/src/main/resources/mapper/production/ProductionPlanMapper.xml b/src/main/resources/mapper/production/ProductionPlanMapper.xml
index 69ccd36..9823080 100644
--- a/src/main/resources/mapper/production/ProductionPlanMapper.xml
+++ b/src/main/resources/mapper/production/ProductionPlanMapper.xml
@@ -58,7 +58,7 @@
</if>
</if>
</where>
- ORDER BY COALESCE(pp.id) DESC
+ ORDER BY pp.mps_no DESC
</select>
<select id="selectWithMaterialByIds" resultType="com.ruoyi.production.bean.dto.ProductionPlanDto">
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index ecdd1f3..a818160 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -17,56 +17,118 @@
</select>
<select id="selectPurchaseLedgerListPage" resultType="com.ruoyi.purchase.dto.PurchaseLedgerDto">
- SELECT
- pl.id,
- pl.purchase_contract_number,
- pl.sales_contract_no,
- pl.supplier_id,
- pl.supplier_name,
- pl.project_name,
- pl.contract_amount,
- pl.entry_date,
- pl.execution_date,
- pl.recorder_id,
- pl.recorder_name,
- pl.template_name,
- pl.approve_user_ids,
- sm.is_white,
- pl.approval_status,
- pl.payment_method,
- pl.remarks
- FROM purchase_ledger pl
- LEFT JOIN supplier_manage sm ON pl.supplier_id = sm.id
- <where>
- <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
- AND pl.purchase_contract_number LIKE CONCAT('%', #{c.purchaseContractNumber}, '%')
- </if>
- <if test="c.approvalStatus != null and c.approvalStatus != ''">
- AND pl.approval_status = #{c.approvalStatus}
- </if>
- <if test="c.supplierName != null and c.supplierName != ''">
- AND pl.supplier_name LIKE CONCAT('%', #{c.supplierName}, '%')
- </if>
- <if test="c.salesContractNo != null and c.salesContractNo != ''">
- AND pl.sales_contract_no LIKE CONCAT('%', #{c.salesContractNo}, '%')
- </if>
- <if test="c.projectName != null and c.projectName != ''">
- AND pl.project_name LIKE CONCAT('%', #{c.projectName}, '%')
- </if>
- <if test="c.entryDateStart != null and c.entryDateStart != ''">
- AND pl.entry_date >= #{c.entryDateStart}
- </if>
- <if test="c.entryDateEnd != null and c.entryDateEnd != ''">
- AND pl.entry_date <= #{c.entryDateEnd}
- </if>
- <if test="c.supplierId != null">
- AND pl.supplier_id = #{c.supplierId}
- </if>
- <if test="c.approvalStatus != null">
- AND pl.approval_status = #{c.approvalStatus}
- </if>
- </where>
- ORDER BY pl.entry_date DESC
+ SELECT result.*
+ FROM (
+ SELECT
+ pl.id,
+ pl.purchase_contract_number,
+ pl.sales_contract_no,
+ pl.supplier_id,
+ pl.supplier_name,
+ pl.project_name,
+ pl.contract_amount,
+ pl.entry_date,
+ pl.execution_date,
+ pl.recorder_id,
+ pl.recorder_name,
+ pl.template_name,
+ pl.approve_user_ids,
+ sm.is_white,
+ pl.approval_status,
+ pl.payment_method,
+ pl.remarks,
+ CASE
+ WHEN IFNULL(ls.total_product_count, 0) = 0 THEN '寰呭叆搴�'
+ WHEN IFNULL(ls.full_product_count, 0) >= IFNULL(ls.total_product_count, 0) THEN '瀹屽叏鍏ュ簱'
+ WHEN IFNULL(ls.approved_product_count, 0) > 0 THEN '鍏ュ簱涓�'
+ ELSE '寰呭叆搴�'
+ END AS stock_in_status
+ FROM purchase_ledger pl
+ LEFT JOIN supplier_manage sm ON pl.supplier_id = sm.id
+ LEFT JOIN (
+ SELECT
+ product_status.sales_ledger_id,
+ COUNT(1) AS total_product_count,
+ SUM(CASE WHEN product_status.approved_stock_in_num > 0 THEN 1 ELSE 0 END) AS approved_product_count,
+ SUM(CASE WHEN product_status.approved_stock_in_num >= product_status.product_quantity THEN 1 ELSE 0 END) AS full_product_count
+ FROM (
+ SELECT
+ slp.id AS sales_ledger_product_id,
+ slp.sales_ledger_id,
+ IFNULL(slp.quantity, 0) AS product_quantity,
+ IFNULL(approved_qty.approved_stock_in_num, 0) AS approved_stock_in_num
+ FROM sales_ledger_product slp
+ LEFT JOIN (
+ SELECT rel.sales_ledger_product_id,
+ IFNULL(SUM(rel.stock_in_num), 0) AS approved_stock_in_num
+ FROM (
+ SELECT slp.id AS sales_ledger_product_id,
+ sir.stock_in_num
+ FROM stock_in_record sir
+ INNER JOIN sales_ledger_product slp
+ ON slp.type = 2
+ AND TRIM(sir.record_type) = '7'
+ AND sir.record_id = slp.sales_ledger_id
+ AND (
+ (sir.batch_no IS NOT NULL AND sir.batch_no LIKE CONCAT('%-', slp.id))
+ OR (sir.batch_no IS NULL AND sir.product_model_id = slp.product_model_id)
+ )
+ WHERE sir.approval_status = 1
+
+ UNION ALL
+
+ SELECT slp.id AS sales_ledger_product_id,
+ sir.stock_in_num
+ FROM stock_in_record sir
+ INNER JOIN quality_inspect qi
+ ON TRIM(sir.record_type) = '10'
+ AND sir.record_id = qi.id
+ INNER JOIN sales_ledger_product slp
+ ON slp.type = 2
+ AND slp.sales_ledger_id = qi.purchase_ledger_id
+ AND slp.product_model_id = qi.product_model_id
+ WHERE sir.approval_status = 1
+ ) rel
+ GROUP BY rel.sales_ledger_product_id
+ ) approved_qty ON approved_qty.sales_ledger_product_id = slp.id
+ WHERE slp.type = 2
+ ) product_status
+ GROUP BY product_status.sales_ledger_id
+ ) ls ON ls.sales_ledger_id = pl.id
+ <where>
+ <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
+ AND pl.purchase_contract_number LIKE CONCAT('%', #{c.purchaseContractNumber}, '%')
+ </if>
+ <if test="c.approvalStatus != null and c.approvalStatus != ''">
+ AND pl.approval_status = #{c.approvalStatus}
+ </if>
+ <if test="c.supplierName != null and c.supplierName != ''">
+ AND pl.supplier_name LIKE CONCAT('%', #{c.supplierName}, '%')
+ </if>
+ <if test="c.salesContractNo != null and c.salesContractNo != ''">
+ AND pl.sales_contract_no LIKE CONCAT('%', #{c.salesContractNo}, '%')
+ </if>
+ <if test="c.projectName != null and c.projectName != ''">
+ AND pl.project_name LIKE CONCAT('%', #{c.projectName}, '%')
+ </if>
+ <if test="c.entryDateStart != null and c.entryDateStart != ''">
+ AND pl.entry_date >= #{c.entryDateStart}
+ </if>
+ <if test="c.entryDateEnd != null and c.entryDateEnd != ''">
+ AND pl.entry_date <= #{c.entryDateEnd}
+ </if>
+ <if test="c.supplierId != null">
+ AND pl.supplier_id = #{c.supplierId}
+ </if>
+ <if test="c.approvalStatus != null">
+ AND pl.approval_status = #{c.approvalStatus}
+ </if>
+ </where>
+ ) result
+ <if test="c.stockInStatus != null and c.stockInStatus != ''">
+ WHERE result.stock_in_status = #{c.stockInStatus}
+ </if>
+ ORDER BY result.entry_date DESC
</select>
<select id="selectTotalPurchaseAmount" resultType="java.math.BigDecimal">
diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
index f252881..72f166c 100644
--- a/src/main/resources/mapper/quality/QualityInspectMapper.xml
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -4,6 +4,10 @@
<select id="qualityInspectListPage" resultType="com.ruoyi.quality.dto.QualityInspectDto">
SELECT
qi.*,
+ CASE
+ WHEN (IFNULL(qi.qualified_quantity, 0) + IFNULL(qi.unqualified_quantity, 0)) = 0 THEN 0
+ ELSE ROUND(IFNULL(qi.qualified_quantity, 0) / (IFNULL(qi.qualified_quantity, 0) + IFNULL(qi.unqualified_quantity, 0)) * 100, 2)
+ END AS passRate,
<choose>
<when test="qualityInspect.inspectType == 0">
pl.purchase_contract_number as purchase_contract_no
@@ -59,7 +63,11 @@
<select id="qualityInspectExport" resultType="com.ruoyi.quality.pojo.QualityInspect">
SELECT
- *
+ qi.*,
+ CASE
+ WHEN (IFNULL(qi.qualified_quantity, 0) + IFNULL(qi.unqualified_quantity, 0)) = 0 THEN 0
+ ELSE ROUND(IFNULL(qi.qualified_quantity, 0) / (IFNULL(qi.qualified_quantity, 0) + IFNULL(qi.unqualified_quantity, 0)) * 100, 2)
+ END AS passRate
FROM quality_inspect
where
inspect_type=#{qualityInspect.inspectType}
@@ -86,11 +94,7 @@
</delete>
<select id="getInspectStatistics" resultType="com.ruoyi.quality.dto.QualityInspectStatDto">
- SELECT CASE pp.product_name
- WHEN '鍘熸潗鏂�' THEN 0
- WHEN '鍗婃垚鍝�' THEN 1
- WHEN '鎴愬搧' THEN 2
- END AS modelType,
+ SELECT qi.inspect_type AS modelType,
IFNULL(SUM(qi.quantity), 0) AS totalCount,
@@ -99,107 +103,44 @@
ELSE 0
END), 0) AS completedCount
- FROM product p
- INNER JOIN product pp
- ON p.parent_id = pp.id
- LEFT JOIN product_model pm
- ON pm.product_id = p.id
- LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
+ FROM quality_inspect qi
- WHERE pp.product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
-
- GROUP BY pp.product_name
+ GROUP BY qi.inspect_type
</select>
<select id="getPassRateStatistics" resultType="com.ruoyi.quality.dto.QualityPassRateDto">
SELECT t.modelType,
+ t.totalCount,
+ t.completedCount,
+ t.qualifiedCount,
+ t.unqualifiedCount,
- COALESCE(SUM(qi.quantity), 0) AS totalCount,
+ /* 瀹屾垚鐜囷細
+ 濡傛灉鎬绘暟涓� 0 鍒欒繑鍥� 0锛涘惁鍒欒绠楁瘮渚嬶紝浣跨敤 TRUNCATE 淇濈暀 4 浣嶅皬鏁帮紙濡� 99.9992锛�
+ */
+ IF(t.totalCount = 0, 0,
+ TRUNCATE((t.completedCount / t.totalCount) * 100, 2)
+ ) AS completionRate,
- COALESCE(SUM(
- CASE
- WHEN qi.inspect_state = 1 THEN qi.quantity
- ELSE 0
- END
- ), 0) AS completedCount,
-
- COALESCE(SUM(
- CASE
- WHEN qi.inspect_state = 1
- AND qi.check_result = '鍚堟牸'
- THEN qi.quantity
- ELSE 0
- END
- ), 0) AS qualifiedCount,
-
- COALESCE(SUM(
- CASE
- WHEN qi.inspect_state = 1
- AND qi.check_result = '涓嶅悎鏍�'
- THEN qi.quantity
- ELSE 0
- END
- ), 0) AS unqualifiedCount,
-
- /* 瀹屾垚鐜� */
- IF(COALESCE(SUM(qi.quantity), 0) = 0, 0,
- ROUND(
- COALESCE(SUM(
- CASE
- WHEN qi.inspect_state = 1 THEN qi.quantity
- ELSE 0
- END
- ), 0)
- / SUM(qi.quantity) * 100, 2)
- ) AS completionRate,
-
- /* 鍚堟牸鐜� */
- IF(COALESCE(SUM(
- CASE
- WHEN qi.inspect_state = 1 THEN qi.quantity
- ELSE 0
- END
- ), 0) = 0, 0,
- ROUND(
- COALESCE(SUM(
- CASE
- WHEN qi.inspect_state = 1
- AND qi.check_result = '鍚堟牸'
- THEN qi.quantity
- ELSE 0
- END
- ), 0)
- /
- COALESCE(SUM(
- CASE
- WHEN qi.inspect_state = 1 THEN qi.quantity
- ELSE 0
- END
- ), 0) * 100, 2)
- ) AS passRate
-
- FROM (SELECT 0 AS modelType
- UNION ALL
- SELECT 1
- UNION ALL
- SELECT 2) t
- LEFT JOIN product p
- ON 1 = 1
- LEFT JOIN product pp
- ON p.parent_id = pp.id
- LEFT JOIN product_model pm
- ON pm.product_id = p.id
- LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
- AND (
- (pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0) OR
- (pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1) OR
- (pp.product_name = '鎴愬搧' AND t.modelType = 2)
- )
-
- GROUP BY t.modelType
+ /* 鍚堟牸鐜囷細
+ 濡傛灉瀹屽伐鏁颁负 0 鍒欒繑鍥� 0锛涗娇鐢� TRUNCATE 鎴柇锛岄槻姝㈡瀬鍏舵帴杩� 100% 鐨勬暟鎹鍥涜垗浜斿叆鎴� 100
+ */
+ IF(t.completedCount = 0, 0,
+ TRUNCATE((t.qualifiedCount / t.completedCount) * 100, 2)
+ ) AS passRate
+ FROM (
+ /* 鍏堥�氳繃瀛愭煡璇㈡妸鍩虹鏁版嵁杩涜鑱氬悎缁熻锛岄伩鍏嶅灞傞噸澶嶇紪鍐欏鏉傜殑 CASE WHEN */
+ SELECT qi.inspect_type AS modelType,
+ COALESCE(SUM(qi.quantity), 0) AS totalCount,
+ COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END),
+ 0) AS completedCount,
+ COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.qualified_quantity ELSE 0 END),
+ 0) AS qualifiedCount,
+ COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.unqualified_quantity ELSE 0 END),
+ 0) AS unqualifiedCount
+ FROM quality_inspect qi
+ GROUP BY qi.inspect_type) t
ORDER BY t.modelType;
</select>
@@ -220,45 +161,74 @@
FROM months m
CROSS JOIN types t)
- SELECT CASE b.month_num
- WHEN 1 THEN '涓�鏈�'
- WHEN 2 THEN '浜屾湀'
- WHEN 3 THEN '涓夋湀'
- WHEN 4 THEN '鍥涙湀'
- WHEN 5 THEN '浜旀湀'
- WHEN 6 THEN '鍏湀'
- WHEN 7 THEN '涓冩湀'
- WHEN 8 THEN '鍏湀'
- WHEN 9 THEN '涔濇湀'
- WHEN 10 THEN '鍗佹湀'
- WHEN 11 THEN '鍗佷竴鏈�'
- WHEN 12 THEN '鍗佷簩鏈�'
- END AS month,
+ SELECT
+ CASE t.month_num
+ WHEN 1 THEN '涓�鏈�'
+ WHEN 2 THEN '浜屾湀'
+ WHEN 3 THEN '涓夋湀'
+ WHEN 4 THEN '鍥涙湀'
+ WHEN 5 THEN '浜旀湀'
+ WHEN 6 THEN '鍏湀'
+ WHEN 7 THEN '涓冩湀'
+ WHEN 8 THEN '鍏湀'
+ WHEN 9 THEN '涔濇湀'
+ WHEN 10 THEN '鍗佹湀'
+ WHEN 11 THEN '鍗佷竴鏈�'
+ WHEN 12 THEN '鍗佷簩鏈�'
+ END AS month,
- b.modelType,
+ t.modelType,
+ t.totalCount,
+ t.completedCount,
+ t.qualifiedCount,
+ t.unqualifiedCount,
- /* 鎬绘暟閲� */
+ IF(t.totalCount = 0, 0,
+ TRUNCATE((t.completedCount / t.totalCount) * 100, 2)
+ ) AS completionRate,
+
+ IF(t.completedCount = 0, 0,
+ TRUNCATE((t.qualifiedCount / t.completedCount) * 100, 2)
+ ) AS passRate
+
+ FROM (
+ SELECT
+ b.month_num,
+ b.modelType,
+ COALESCE(SUM(qi.quantity), 0) AS totalCount,
+ COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END), 0) AS completedCount,
+ COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.qualified_quantity ELSE 0 END), 0) AS qualifiedCount,
+ COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.unqualified_quantity ELSE 0 END), 0) AS unqualifiedCount
+ FROM base b
+ LEFT JOIN quality_inspect qi ON qi.inspect_type = b.modelType
+ AND YEAR(qi.check_time) = #{year}
+ AND MONTH(qi.check_time) = b.month_num
+ GROUP BY b.month_num, b.modelType
+ ) t
+ ORDER BY t.month_num, t.modelType;
+ </select>
+ <select id="getYearlyPassRateStatistics" resultType="com.ruoyi.quality.dto.QualityPassRateDto">
+ SELECT qi.inspect_type AS modelType,
+
COALESCE(SUM(qi.quantity), 0) AS totalCount,
- /* 宸插畬鎴� */
- COALESCE(SUM(
- CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END
- ), 0) AS completedCount,
-
- /* 鍚堟牸 */
COALESCE(SUM(
CASE
- WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸'
- THEN qi.quantity
+ WHEN qi.inspect_state = 1 THEN qi.quantity
+ ELSE 0
+ END
+ ), 0) AS completedCount,
+
+ COALESCE(SUM(
+ CASE
+ WHEN qi.inspect_state = 1 THEN qi.qualified_quantity
ELSE 0
END
), 0) AS qualifiedCount,
- /* 涓嶅悎鏍� */
COALESCE(SUM(
CASE
- WHEN qi.inspect_state = 1 AND qi.check_result = '涓嶅悎鏍�'
- THEN qi.quantity
+ WHEN qi.inspect_state = 1 THEN qi.unqualified_quantity
ELSE 0
END
), 0) AS unqualifiedCount,
@@ -268,8 +238,8 @@
ROUND(
COALESCE(SUM(
CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END
- ), 0) / SUM(qi.quantity) * 100, 2
- )
+ ), 0)
+ / SUM(qi.quantity) * 100, 2)
) AS completionRate,
/* 鍚堟牸鐜� */
@@ -278,66 +248,18 @@
), 0) = 0, 0,
ROUND(
COALESCE(SUM(
- CASE
- WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸'
- THEN qi.quantity
- ELSE 0
- END
+ CASE WHEN qi.inspect_state = 1 THEN qi.qualified_quantity ELSE 0 END
), 0)
/
COALESCE(SUM(
CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END
- ), 0) * 100, 2
- )
+ ), 0) * 100, 2)
) AS passRate
- FROM base b
- LEFT JOIN product p ON 1 = 1
- LEFT JOIN product pp ON p.parent_id = pp.id
- LEFT JOIN product_model pm ON pm.product_id = p.id
- LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
- AND YEAR(qi.check_time) = #{year}
- AND MONTH(qi.check_time) = b.month_num
- AND (
- (pp.product_name = '鍘熸潗鏂�' AND b.modelType = 0)
- OR (pp.product_name = '鍗婃垚鍝�' AND b.modelType = 1)
- OR (pp.product_name = '鎴愬搧' AND b.modelType = 2)
- )
-
- GROUP BY b.month_num, b.modelType
- ORDER BY b.month_num, b.modelType;
-
- </select>
-
- <select id="getYearlyPassRateStatistics" resultType="com.ruoyi.quality.dto.QualityPassRateDto">
- SELECT t.modelType,
-
- COALESCE(SUM(
- CASE
- WHEN pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0 THEN qi.quantity
- WHEN pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1 THEN qi.quantity
- WHEN pp.product_name = '鎴愬搧' AND t.modelType = 2 THEN qi.quantity
- ELSE 0
- END
- ), 0) AS totalCount
-
- FROM (SELECT 0 AS modelType
- UNION ALL
- SELECT 1
- UNION ALL
- SELECT 2) t
- LEFT JOIN product p ON 1 = 1
- LEFT JOIN product pp ON p.parent_id = pp.id
- LEFT JOIN product_model pm ON pm.product_id = p.id
- LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
- AND YEAR(qi.check_time) = #{year}
- AND qi.inspect_state = 1
- AND qi.check_result = '鍚堟牸'
-
- GROUP BY t.modelType
- ORDER BY t.modelType;
+ FROM quality_inspect qi
+ WHERE YEAR(qi.check_time) = #{year}
+ GROUP BY qi.inspect_type
+ ORDER BY qi.inspect_type;
</select>
@@ -366,7 +288,7 @@
/* 鍘熸潗鏂� */
COALESCE(SUM(
CASE
- WHEN pp.product_name = '鍘熸潗鏂�'
+ WHEN qi.inspect_type = 0
THEN qi.quantity
ELSE 0
END
@@ -375,7 +297,7 @@
/* 鍗婃垚鍝� */
COALESCE(SUM(
CASE
- WHEN pp.product_name = '鍗婃垚鍝�'
+ WHEN qi.inspect_type = 1
THEN qi.quantity
ELSE 0
END
@@ -384,19 +306,15 @@
/* 鎴愬搧 */
COALESCE(SUM(
CASE
- WHEN pp.product_name = '鎴愬搧'
+ WHEN qi.inspect_type = 2
THEN qi.quantity
ELSE 0
END
), 0) AS outgoingCount
FROM months m
- LEFT JOIN product p ON 1 = 1
- LEFT JOIN product pp ON p.parent_id = pp.id
- LEFT JOIN product_model pm ON pm.product_id = p.id
LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
- AND qi.inspect_state = 1
+ ON qi.inspect_state = 1
AND YEAR(qi.check_time) = #{year}
AND MONTH(qi.check_time) = m.month_num
@@ -411,16 +329,8 @@
FROM quality_inspect_param qip
JOIN quality_inspect qi
ON qip.inspect_id = qi.id
- JOIN product p
- ON qi.product_id = p.id
- JOIN product pp
- ON p.parent_id = pp.id
WHERE qi.inspect_state = 1
- AND (
- (#{modelType} = 1 AND pp.product_name = '鍘熸潗鏂�')
- OR (#{modelType} = 2 AND pp.product_name = '鍗婃垚鍝�')
- OR (#{modelType} = 3 AND pp.product_name = '鎴愬搧')
- )
+ AND qi.inspect_type = #{modelType} - 1
GROUP BY qip.parameter_item),
ranked AS (SELECT name,
count,
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index c145e0a..1ea2510 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -110,17 +110,19 @@
FROM sales_ledger
GROUP BY customer_name
</select>
+
<select id="listSalesLedgerAndShipped" resultType="com.ruoyi.sales.dto.SalesLedgerDto">
select distinct sl.id as 'disId', sl.* from
sales_ledger sl
left join sales_ledger_product slp on sl.id = slp.sales_ledger_id
left join shipping_info si on slp.id = si.sales_ledger_product_id
- where si.status = '宸插彂璐�'
- <if test="ew.customerName != null and ew.customerName != '' ">
- and sl.customer_name like concat('%',#{ew.customerName},'%')
+ where si.status = '瀹℃牳閫氳繃'
+ <if test="ew.customerId != null and ew.customerId != '' ">
+ and sl.customer_id = #{ew.customerId}
</if>
order by sl.execution_date desc
</select>
+
<select id="selectPurchaseReportVoPage" resultType="com.ruoyi.purchase.vo.PurchaseReportVo">
select sl.sales_contract_no customerContractNo,
c.customer_name,
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index 7eb7b79..6b48bbe 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -38,7 +38,13 @@
WHEN IFNULL(t3.shipped_quantity, 0) = 0 THEN '寰呭彂璐�'
WHEN (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) > 0 THEN '閮ㄥ垎鍙戣揣'
ELSE '宸插彂璐�'
- END as shippingStatus
+ END as shippingStatus,
+ CASE
+ WHEN T1.type != 2 THEN NULL
+ WHEN IFNULL(t4.approved_stock_in_num, 0) <= 0 THEN '寰呭叆搴�'
+ WHEN IFNULL(t4.approved_stock_in_num, 0) >= IFNULL(T1.quantity, 0) THEN '瀹屽叏鍏ュ簱'
+ ELSE '鍏ュ簱涓�'
+ END AS stock_in_approval_status
FROM
sales_ledger_product T1
LEFT JOIN (
@@ -53,6 +59,39 @@
where si.status != '瀹℃牳鎷掔粷'
GROUP BY sales_ledger_product_id
) t3 ON t3.sales_ledger_product_id = T1.id
+ LEFT JOIN (
+ SELECT rel.sales_ledger_product_id,
+ IFNULL(SUM(rel.stock_in_num), 0) AS approved_stock_in_num
+ FROM (
+ SELECT slp.id AS sales_ledger_product_id,
+ sir.stock_in_num
+ FROM stock_in_record sir
+ INNER JOIN sales_ledger_product slp
+ ON slp.type = 2
+ AND TRIM(sir.record_type) = '7'
+ AND sir.record_id = slp.sales_ledger_id
+ AND (
+ (sir.batch_no IS NOT NULL AND sir.batch_no LIKE CONCAT('%-', slp.id))
+ OR (sir.batch_no IS NULL AND sir.product_model_id = slp.product_model_id)
+ )
+ WHERE sir.approval_status = 1
+
+ UNION ALL
+
+ SELECT slp.id AS sales_ledger_product_id,
+ sir.stock_in_num
+ FROM stock_in_record sir
+ INNER JOIN quality_inspect qi
+ ON TRIM(sir.record_type) = '10'
+ AND sir.record_id = qi.id
+ INNER JOIN sales_ledger_product slp
+ ON slp.type = 2
+ AND slp.sales_ledger_id = qi.purchase_ledger_id
+ AND slp.product_model_id = qi.product_model_id
+ WHERE sir.approval_status = 1
+ ) rel
+ GROUP BY rel.sales_ledger_product_id
+ ) t4 ON t4.sales_ledger_product_id = T1.id
left join product_model pm ON T1.product_model_id = pm.id
left join product p ON pm.product_id = p.id
<where>
@@ -168,7 +207,7 @@
JOIN product pr ON slp.product_id = pr.id
WHERE
slp.type = 2
- AND pr.parent_id = ( SELECT id FROM product WHERE product_name = '鍘熸潗鏂�' )
+ AND pr.parent_id = ( SELECT id FROM product WHERE product_name = '鍘熸枡' )
GROUP BY
pr.id,
pr.product_name
@@ -179,20 +218,36 @@
<select id="selectProductCountByTypeAndDate" resultType="int">
SELECT IFNULL(COUNT(*), 0)
- FROM sales_ledger_product
+ FROM sales_ledger_product slp
+ LEFT JOIN sales_ledger sl ON sl.id = slp.sales_ledger_id
+ LEFT JOIN purchase_ledger pl ON pl.id = slp.sales_ledger_id
WHERE type = #{type}
- <if test="startDate != null">
- AND register_date >= #{startDate}
- </if>
- <if test="endDate != null">
- AND register_date <= #{endDate}
- </if>
+
+ <choose>
+ <when test="type == 1">
+ <if test="startDate != null">
+ AND sl.entry_date >= #{startDate}
+ </if>
+ <if test="endDate != null">
+ AND sl.entry_date <= #{endDate}
+ </if>
+ </when>
+
+ <when test="type == 2">
+ <if test="startDate != null">
+ AND pl.entry_date >= #{startDate}
+ </if>
+ <if test="endDate != null">
+ AND pl.entry_date <= #{endDate}
+ </if>
+ </when>
+ </choose>
</select>
<select id="selectRawMaterialExpense" resultType="java.math.BigDecimal">
WITH RECURSIVE product_tree AS (SELECT id
FROM product
- WHERE product_name = '鍘熸潗鏂�'
+ WHERE product_name = '鍘熸枡'
UNION ALL
diff --git a/src/main/resources/mapper/sales/SalesQuotationMapper.xml b/src/main/resources/mapper/sales/SalesQuotationMapper.xml
index 3c93850..5448933 100644
--- a/src/main/resources/mapper/sales/SalesQuotationMapper.xml
+++ b/src/main/resources/mapper/sales/SalesQuotationMapper.xml
@@ -9,7 +9,7 @@
FROM sales_quotation t1
LEFT JOIN approve_process t2 ON t1.quotation_no = t2.approve_reason and t2.approve_type = 6
WHERE 1=1
- and t2.approve_deleted = 0
+ and t2.approve_delete = 0
<if test="salesQuotationDto.quotationNo != null and salesQuotationDto.quotationNo != '' ">
AND t1.quotation_no LIKE CONCAT('%',#{salesQuotationDto.quotationNo},'%')
</if>
diff --git a/src/main/resources/mapper/stock/StockInRecordMapper.xml b/src/main/resources/mapper/stock/StockInRecordMapper.xml
index 5545c1e..89ba5aa 100644
--- a/src/main/resources/mapper/stock/StockInRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockInRecordMapper.xml
@@ -19,11 +19,96 @@
p.product_name as product_name,
pm.model,
pm.unit,
- u.nick_name as createBy
+ u.nick_name as createBy,
+ CASE
+ WHEN #{params.topParentProductId} = 278 AND TRIM(sir.record_type) = '7' THEN
+ COALESCE(pl_by_product.purchase_contract_number, pl_direct.purchase_contract_number)
+ WHEN #{params.topParentProductId} = 278 AND TRIM(sir.record_type) = '10' THEN
+ pl_by_quality.purchase_contract_number
+ WHEN #{params.topParentProductId} = 276 THEN
+ CASE
+ WHEN TRIM(sir.record_type) IN ('14', '15') THEN
+ sl_return.sales_contract_no
+ WHEN TRIM(sir.record_type) IN ('2', '5') THEN
+ COALESCE(po_sales_main.sales_contract_no, po_main.nps_no)
+ WHEN TRIM(sir.record_type) = '6' THEN
+ COALESCE(po_sales_qi.sales_contract_no, po_qi.nps_no)
+ WHEN TRIM(sir.record_type) IN ('4', '11') THEN
+ COALESCE(po_sales_uq.sales_contract_no, po_uq.nps_no)
+ WHEN TRIM(sir.record_type) IN ('20', '22') THEN
+ COALESCE(po_sales_pick.sales_contract_no, po_pick.nps_no)
+ ELSE NULL
+ END
+ ELSE NULL
+ END AS sourceOrderNo
FROM stock_in_record as sir
LEFT JOIN product_model as pm on sir.product_model_id = pm.id
LEFT JOIN product as p on pm.product_id = p.id
LEFT JOIN sys_user as u on sir.create_user = u.user_id
+ LEFT JOIN quality_inspect as qi_purchase on TRIM(sir.record_type) = '10' and sir.record_id = qi_purchase.id
+ LEFT JOIN sales_ledger_product as slp on TRIM(sir.record_type) = '7' and slp.id = sir.record_id and slp.type = 2
+ LEFT JOIN purchase_ledger as pl_by_product on TRIM(sir.record_type) = '7' and pl_by_product.id = slp.sales_ledger_id
+ LEFT JOIN purchase_ledger as pl_direct on TRIM(sir.record_type) = '7' and pl_direct.id = sir.record_id
+ LEFT JOIN purchase_ledger as pl_by_quality on TRIM(sir.record_type) = '10' and pl_by_quality.id = qi_purchase.purchase_ledger_id
+
+ LEFT JOIN production_product_main as ppm_main on TRIM(sir.record_type) IN ('2', '5') and sir.record_id = ppm_main.id
+ LEFT JOIN production_operation_task as pot_main on ppm_main.production_operation_task_id = pot_main.id
+ LEFT JOIN production_order as po_main on pot_main.production_order_id = po_main.id
+ LEFT JOIN (
+ select po2.id as production_order_id,
+ group_concat(distinct sl2.sales_contract_no order by sl2.sales_contract_no separator ',') as sales_contract_no
+ from production_order po2
+ left join production_plan pp2
+ on find_in_set(pp2.id, replace(replace(replace(po2.production_plan_ids, '[', ''), ']', ''), ' ', '')) > 0
+ left join sales_ledger sl2 on sl2.id = pp2.sales_ledger_id
+ group by po2.id
+ ) as po_sales_main on po_sales_main.production_order_id = po_main.id
+
+ LEFT JOIN quality_inspect as qi_prod on TRIM(sir.record_type) = '6' and sir.record_id = qi_prod.id
+ LEFT JOIN production_product_main as ppm_qi on qi_prod.product_main_id = ppm_qi.id
+ LEFT JOIN production_operation_task as pot_qi on ppm_qi.production_operation_task_id = pot_qi.id
+ LEFT JOIN production_order as po_qi on pot_qi.production_order_id = po_qi.id
+ LEFT JOIN (
+ select po2.id as production_order_id,
+ group_concat(distinct sl2.sales_contract_no order by sl2.sales_contract_no separator ',') as sales_contract_no
+ from production_order po2
+ left join production_plan pp2
+ on find_in_set(pp2.id, replace(replace(replace(po2.production_plan_ids, '[', ''), ']', ''), ' ', '')) > 0
+ left join sales_ledger sl2 on sl2.id = pp2.sales_ledger_id
+ group by po2.id
+ ) as po_sales_qi on po_sales_qi.production_order_id = po_qi.id
+
+ LEFT JOIN quality_unqualified as qu on TRIM(sir.record_type) IN ('4', '11') and sir.record_id = qu.id
+ LEFT JOIN quality_inspect as qi_uq on qu.inspect_id = qi_uq.id
+ LEFT JOIN production_product_main as ppm_uq on qi_uq.product_main_id = ppm_uq.id
+ LEFT JOIN production_operation_task as pot_uq on ppm_uq.production_operation_task_id = pot_uq.id
+ LEFT JOIN production_order as po_uq on pot_uq.production_order_id = po_uq.id
+ LEFT JOIN (
+ select po2.id as production_order_id,
+ group_concat(distinct sl2.sales_contract_no order by sl2.sales_contract_no separator ',') as sales_contract_no
+ from production_order po2
+ left join production_plan pp2
+ on find_in_set(pp2.id, replace(replace(replace(po2.production_plan_ids, '[', ''), ']', ''), ' ', '')) > 0
+ left join sales_ledger sl2 on sl2.id = pp2.sales_ledger_id
+ group by po2.id
+ ) as po_sales_uq on po_sales_uq.production_order_id = po_uq.id
+
+ LEFT JOIN production_order_pick as pop on TRIM(sir.record_type) IN ('20', '22') and sir.record_id = pop.id
+ LEFT JOIN production_order as po_pick on pop.production_order_id = po_pick.id
+ LEFT JOIN (
+ select po2.id as production_order_id,
+ group_concat(distinct sl2.sales_contract_no order by sl2.sales_contract_no separator ',') as sales_contract_no
+ from production_order po2
+ left join production_plan pp2
+ on find_in_set(pp2.id, replace(replace(replace(po2.production_plan_ids, '[', ''), ']', ''), ' ', '')) > 0
+ left join sales_ledger sl2 on sl2.id = pp2.sales_ledger_id
+ group by po2.id
+ ) as po_sales_pick on po_sales_pick.production_order_id = po_pick.id
+
+ LEFT JOIN return_sale_product as rsp on TRIM(sir.record_type) IN ('14', '15') and sir.record_id = rsp.id
+ LEFT JOIN return_management as rm on rsp.return_management_id = rm.id
+ LEFT JOIN shipping_info as si_return on rm.shipping_id = si_return.id
+ LEFT JOIN sales_ledger as sl_return on si_return.sales_ledger_id = sl_return.id
<where>
<if test="params.timeStr != null and params.timeStr != ''">
and sir.create_time like concat('%',#{params.timeStr},'%')
@@ -47,7 +132,7 @@
and p.id in (select id from product_tree)
</if>
</where>
- order by sir.id desc
+ order by sir.create_time desc
</select>
<select id="listStockInRecordExportData" resultType="com.ruoyi.stock.execl.StockInRecordExportData">
SELECT
@@ -74,7 +159,7 @@
and sir.record_type = #{params.recordType}
</if>
</where>
- order by sir.id desc
+ order by sir.create_time desc
</select>
<select id="listPageAccountPurchase" resultType="com.ruoyi.account.bean.vo.purchase.PurchaseInboundVo">
SELECT
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 6ca5bf7..06c1863 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -113,7 +113,7 @@
product_model_id,
MAX(create_time) as create_time,
MAX(update_time) as update_time,
- MAX(warn_num) as warn_num,
+ SUM(warn_num) as warn_num,
MAX(version) as version,
model,
MAX(remark) as remark,
diff --git a/src/main/resources/mapper/stock/StockOutRecordMapper.xml b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
index ad5976f..33e42ec 100644
--- a/src/main/resources/mapper/stock/StockOutRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
@@ -62,7 +62,7 @@
and p.id in (select id from product_tree)
</if>
</where>
- order by sor.id desc
+ order by sor.create_time desc
</select>
<select id="listStockOutRecordExportData" resultType="com.ruoyi.stock.execl.StockOutRecordExportData">
SELECT
diff --git a/src/main/resources/mapper/system/SysUserMapper.xml b/src/main/resources/mapper/system/SysUserMapper.xml
index 72da1a1..b8f5aec 100644
--- a/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/src/main/resources/mapper/system/SysUserMapper.xml
@@ -1,159 +1,192 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.system.mapper.SysUserMapper">
<resultMap type="com.ruoyi.project.system.domain.SysUser" id="SysUserResult">
- <id property="userId" column="user_id" />
- <result property="userName" column="user_name" />
- <result property="nickName" column="nick_name" />
- <result property="email" column="email" />
- <result property="phonenumber" column="phonenumber" />
- <result property="sex" column="sex" />
- <result property="avatar" column="avatar" />
- <result property="password" column="password" />
- <result property="status" column="status" />
- <result property="delFlag" column="del_flag" />
- <result property="aiEnabled" column="ai_enabled" />
- <result property="loginIp" column="login_ip" />
- <result property="loginDate" column="login_date" />
- <result property="createBy" column="create_by" />
- <result property="createTime" column="create_time" />
- <result property="updateBy" column="update_by" />
- <result property="updateTime" column="update_time" />
- <result property="remark" column="remark" />
- <result property="deptNames" column="dept_names" />
- <result property="tenantId" column="tenant_id" />
- <association property="dept" javaType="com.ruoyi.project.system.domain.SysDept" resultMap="deptResult" />
- <collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
+ <id property="userId" column="user_id"/>
+ <result property="userName" column="user_name"/>
+ <result property="nickName" column="nick_name"/>
+ <result property="email" column="email"/>
+ <result property="phonenumber" column="phonenumber"/>
+ <result property="sex" column="sex"/>
+ <result property="avatar" column="avatar"/>
+ <result property="password" column="password"/>
+ <result property="status" column="status"/>
+ <result property="delFlag" column="del_flag"/>
+ <result property="aiEnabled" column="ai_enabled"/>
+ <result property="loginIp" column="login_ip"/>
+ <result property="loginDate" column="login_date"/>
+ <result property="createBy" column="create_by"/>
+ <result property="createTime" column="create_time"/>
+ <result property="updateBy" column="update_by"/>
+ <result property="updateTime" column="update_time"/>
+ <result property="remark" column="remark"/>
+ <result property="deptNames" column="dept_names"/>
+ <result property="tenantId" column="tenant_id"/>
+ <association property="dept" javaType="com.ruoyi.project.system.domain.SysDept" resultMap="deptResult"/>
+ <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
</resultMap>
<resultMap id="deptResult" type="com.ruoyi.project.system.domain.SysDept">
- <id property="deptId" column="dept_id" />
- <result property="parentId" column="parent_id" />
- <result property="deptName" column="dept_name" />
- <result property="ancestors" column="ancestors" />
- <result property="orderNum" column="order_num" />
- <result property="leader" column="leader" />
- <result property="status" column="dept_status" />
+ <id property="deptId" column="dept_id"/>
+ <result property="parentId" column="parent_id"/>
+ <result property="deptName" column="dept_name"/>
+ <result property="ancestors" column="ancestors"/>
+ <result property="orderNum" column="order_num"/>
+ <result property="leader" column="leader"/>
+ <result property="status" column="dept_status"/>
</resultMap>
<resultMap id="RoleResult" type="com.ruoyi.project.system.domain.SysRole">
- <id property="roleId" column="role_id" />
- <result property="roleName" column="role_name" />
- <result property="roleKey" column="role_key" />
- <result property="roleSort" column="role_sort" />
- <result property="dataScope" column="data_scope" />
- <result property="status" column="role_status" />
+ <id property="roleId" column="role_id"/>
+ <result property="roleName" column="role_name"/>
+ <result property="roleKey" column="role_key"/>
+ <result property="roleSort" column="role_sort"/>
+ <result property="dataScope" column="data_scope"/>
+ <result property="status" column="role_status"/>
</resultMap>
- <sql id="selectUserVo">
- select u.user_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.ai_enabled, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
- r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.tenant_id
+ <sql id="selectUserVo">
+ select u.user_id,
+ u.user_name,
+ u.nick_name,
+ u.email,
+ u.avatar,
+ u.phonenumber,
+ u.password,
+ u.sex,
+ u.status,
+ u.del_flag,
+ u.ai_enabled,
+ u.login_ip,
+ u.login_date,
+ u.create_by,
+ u.create_time,
+ u.remark,
+ r.role_id,
+ r.role_name,
+ r.role_key,
+ r.role_sort,
+ r.data_scope,
+ r.status as role_status,
+ u.tenant_id
from sys_user u
- left join sys_user_role ur on u.user_id = ur.user_id
- left join sys_role r on r.role_id = ur.role_id
+ left join sys_user_role ur on u.user_id = ur.user_id
+ left join sys_role r on r.role_id = ur.role_id
</sql>
<select id="selectUserList" parameterType="com.ruoyi.project.system.domain.SysUser" resultMap="SysUserResult">
- select u.user_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,T2.dept_names from sys_user u
- left join
- ( SELECT T1.user_id,GROUP_CONCAT(T2.dept_name SEPARATOR ', ') AS dept_names
- FROM
- sys_user_dept T1
- LEFT JOIN sys_dept T2 ON T1.dept_id = T2.dept_id
- <where>
- <if test="tenantId != null and tenantId != 0">
- T1.dept_id = #{tenantId}
- </if>
- </where>
- GROUP BY T1.user_id
- ) T2 on T2.user_id = u.user_id
- where u.del_flag = '0'
- <if test="userId != null and userId != 0">
- AND u.user_id = #{userId}
- </if>
- <if test="userName != null and userName != ''">
- AND u.user_name like concat('%', #{userName}, '%')
- </if>
- <if test="status != null and status != ''">
- AND u.status = #{status}
- </if>
- <if test="phonenumber != null and phonenumber != ''">
- AND u.phonenumber like concat('%', #{phonenumber}, '%')
- </if>
- <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
- AND date_format(u.create_time,'%Y%m%d') >= date_format(#{params.beginTime},'%Y%m%d')
- </if>
- <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
- AND date_format(u.create_time,'%Y%m%d') <= date_format(#{params.endTime},'%Y%m%d')
- </if>
- <if test="deptId != null">
- AND u.user_id IN
- (
- SELECT user_id FROM sys_user_dept WHERE dept_id = #{deptId}
- )
- </if>
- <!-- 鏁版嵁鑼冨洿杩囨护 -->
- ${params.dataScope}
- </select>
+ select u.user_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag,
+ u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,T2.dept_names from sys_user u
+ left join
+ ( SELECT T1.user_id,GROUP_CONCAT(T2.dept_name SEPARATOR ', ') AS dept_names
+ FROM
+ sys_user_dept T1
+ LEFT JOIN sys_dept T2 ON T1.dept_id = T2.dept_id
+ <where>
+ <if test="tenantId != null and tenantId != 0">
+ T1.dept_id = #{tenantId}
+ </if>
+ </where>
+ GROUP BY T1.user_id
+ ) T2 on T2.user_id = u.user_id
+ where u.del_flag = '0'
+ <if test="userId != null and userId != 0">
+ AND u.user_id = #{userId}
+ </if>
+ <if test="userName != null and userName != ''">
+ AND u.user_name like concat('%', #{userName}, '%')
+ </if>
+ <if test="status != null and status != ''">
+ AND u.status = #{status}
+ </if>
+ <if test="phonenumber != null and phonenumber != ''">
+ AND u.phonenumber like concat('%', #{phonenumber}, '%')
+ </if>
+ <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
+ AND date_format(u.create_time,'%Y%m%d') >= date_format(#{params.beginTime},'%Y%m%d')
+ </if>
+ <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
+ AND date_format(u.create_time,'%Y%m%d') <= date_format(#{params.endTime},'%Y%m%d')
+ </if>
+ <if test="deptId != null">
+ AND u.user_id IN
+ (
+ SELECT user_id FROM sys_user_dept WHERE dept_id = #{deptId}
+ )
+ </if>
+ <!-- 鏁版嵁鑼冨洿杩囨护 -->
+ ${params.dataScope}
+ </select>
- <select id="selectAllocatedList" parameterType="com.ruoyi.project.system.domain.SysUser" resultMap="SysUserResult">
- select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
- from sys_user u
- left join sys_user_role ur on u.user_id = ur.user_id
- left join sys_role r on r.role_id = ur.role_id
- where u.del_flag = '0' and r.role_id = #{roleId}
- <if test="userName != null and userName != ''">
- AND u.user_name like concat('%', #{userName}, '%')
- </if>
- <if test="phonenumber != null and phonenumber != ''">
- AND u.phonenumber like concat('%', #{phonenumber}, '%')
- </if>
- <!-- 鏁版嵁鑼冨洿杩囨护 -->
- ${params.dataScope}
- </select>
+ <select id="selectAllocatedList" parameterType="com.ruoyi.project.system.domain.SysUser" resultMap="SysUserResult">
+ select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
+ from sys_user u
+ left join sys_user_role ur on u.user_id = ur.user_id
+ left join sys_role r on r.role_id = ur.role_id
+ where u.del_flag = '0' and r.role_id = #{roleId}
+ <if test="userName != null and userName != ''">
+ AND u.user_name like concat('%', #{userName}, '%')
+ </if>
+ <if test="phonenumber != null and phonenumber != ''">
+ AND u.phonenumber like concat('%', #{phonenumber}, '%')
+ </if>
+ <!-- 鏁版嵁鑼冨洿杩囨护 -->
+ ${params.dataScope}
+ </select>
- <select id="selectUnallocatedList" parameterType="com.ruoyi.project.system.domain.SysUser" resultMap="SysUserResult">
- select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
- from sys_user u
- left join sys_user_role ur on u.user_id = ur.user_id
- left join sys_role r on r.role_id = ur.role_id
- where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
- and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and ur.role_id = #{roleId})
- <if test="userName != null and userName != ''">
- AND u.user_name like concat('%', #{userName}, '%')
- </if>
- <if test="phonenumber != null and phonenumber != ''">
- AND u.phonenumber like concat('%', #{phonenumber}, '%')
- </if>
- <!-- 鏁版嵁鑼冨洿杩囨护 -->
- ${params.dataScope}
- </select>
+ <select id="selectUnallocatedList" parameterType="com.ruoyi.project.system.domain.SysUser"
+ resultMap="SysUserResult">
+ select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
+ from sys_user u
+ left join sys_user_role ur on u.user_id = ur.user_id
+ left join sys_role r on r.role_id = ur.role_id
+ where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
+ and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and
+ ur.role_id = #{roleId})
+ <if test="userName != null and userName != ''">
+ AND u.user_name like concat('%', #{userName}, '%')
+ </if>
+ <if test="phonenumber != null and phonenumber != ''">
+ AND u.phonenumber like concat('%', #{phonenumber}, '%')
+ </if>
+ <!-- 鏁版嵁鑼冨洿杩囨护 -->
+ ${params.dataScope}
+ </select>
- <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
- <include refid="selectUserVo"/>
- where u.user_name = #{userName} and u.del_flag = '0'
- </select>
+ <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
+ <include refid="selectUserVo"/>
+ where u.user_name = #{userName} and u.del_flag = '0'
+ </select>
- <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
- <include refid="selectUserVo"/>
- where u.user_id = #{userId}
- and u.del_flag = '0'
- </select>
+ <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
+ <include refid="selectUserVo"/>
+ where u.user_id = #{userId}
+ and u.del_flag = '0'
+ </select>
- <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
- select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
- </select>
+ <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
+ select user_id, user_name
+ from sys_user
+ where user_name = #{userName}
+ and del_flag = '0' limit 1
+ </select>
- <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
- select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = '0' limit 1
- </select>
+ <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
+ select user_id, phonenumber
+ from sys_user
+ where phonenumber = #{phonenumber}
+ and del_flag = '0' limit 1
+ </select>
- <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
- select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
- </select>
+ <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
+ select user_id, email
+ from sys_user
+ where email = #{email}
+ and del_flag = '0' limit 1
+ </select>
<select id="selectUserByIds" resultType="com.ruoyi.project.system.domain.SysUser">
<include refid="selectUserVo"/>
<where>
@@ -166,145 +199,154 @@
and u.del_flag = '0'
</where>
</select>
- <select id="selectRegistrantIds" resultType="com.ruoyi.project.system.domain.SysUser">
- SELECT user_id, nick_name FROM sys_user
- <where>
- <if test="list != null and list.size() > 0">
- user_id IN
- <foreach item="id" collection="list" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- <if test="list == null or list.size() == 0">
- 1=0 <!-- 绌哄垪琛ㄦ椂杩斿洖绌虹粨鏋� -->
- </if>
- </where>
- </select>
- <select id="selectUsersByIds" resultType="com.ruoyi.project.system.domain.SysUser">
- SELECT user_id, nick_name
- FROM sys_user
- WHERE user_id IN
- <foreach collection="userIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- and del_flag = '0'
- </select>
- <select id="selectUserByNickName" resultType="com.ruoyi.project.system.domain.SysUser"
- parameterType="java.lang.String">
- <include refid="selectUserVo"/>
- where u.nick_name = #{nickName} and u.del_flag = '0'
- limit 1
- </select>
-
- <insert id="insertUser" parameterType="com.ruoyi.project.system.domain.SysUser" useGeneratedKeys="true" keyProperty="userId">
- insert into sys_user(
- <if test="userId != null and userId != 0">user_id,</if>
- <if test="userName != null and userName != ''">user_name,</if>
- <if test="nickName != null and nickName != ''">nick_name,</if>
- <if test="email != null and email != ''">email,</if>
- <if test="avatar != null and avatar != ''">avatar,</if>
- <if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
- <if test="sex != null and sex != ''">sex,</if>
- <if test="password != null and password != ''">password,</if>
- <if test="status != null and status != ''">status,</if>
- <if test="createBy != null and createBy != ''">create_by,</if>
- <if test="remark != null and remark != ''">remark,</if>
- <if test="tenantId != null ">tenant_id,</if>
- create_time
- )values(
- <if test="userId != null and userId != ''">#{userId},</if>
- <if test="userName != null and userName != ''">#{userName},</if>
- <if test="nickName != null and nickName != ''">#{nickName},</if>
- <if test="email != null and email != ''">#{email},</if>
- <if test="avatar != null and avatar != ''">#{avatar},</if>
- <if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
- <if test="sex != null and sex != ''">#{sex},</if>
- <if test="password != null and password != ''">#{password},</if>
- <if test="status != null and status != ''">#{status},</if>
- <if test="createBy != null and createBy != ''">#{createBy},</if>
- <if test="remark != null and remark != ''">#{remark},</if>
- <if test="tenantId != null ">#{tenantId},</if>
- sysdate()
- )
- </insert>
-
- <update id="updateUser" parameterType="com.ruoyi.project.system.domain.SysUser">
- update sys_user
- <set>
- <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
- <if test="email != null ">email = #{email},</if>
- <if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
- <if test="sex != null and sex != ''">sex = #{sex},</if>
- <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
- <if test="password != null and password != ''">password = #{password},</if>
- <if test="status != null and status != ''">status = #{status},</if>
- <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
- <if test="loginDate != null">login_date = #{loginDate},</if>
- <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- <if test="remark != null">remark = #{remark},</if>
- <if test="tenantId != null">tenant_id = #{tenantId},</if>
- update_time = sysdate()
- </set>
- where user_id = #{userId}
- </update>
-
- <update id="updateUserStatus" parameterType="com.ruoyi.project.system.domain.SysUser">
- update sys_user set status = #{status} where user_id = #{userId}
- </update>
-
- <update id="updateUserAvatar" parameterType="com.ruoyi.project.system.domain.SysUser">
- update sys_user set avatar = #{avatar} where user_name = #{userName}
- </update>
-
- <update id="resetUserPwd" parameterType="com.ruoyi.project.system.domain.SysUser">
- update sys_user set password = #{password} where user_name = #{userName}
- </update>
-
- <delete id="deleteUserById" parameterType="Long">
- update sys_user set del_flag = '2' where user_id = #{userId}
- </delete>
-
- <delete id="deleteUserByIds" parameterType="Long">
- update sys_user set del_flag = '2' where user_id in
- <foreach collection="array" item="userId" open="(" separator="," close=")">
- #{userId}
+ <select id="selectRegistrantIds" resultType="com.ruoyi.project.system.domain.SysUser">
+ SELECT user_id, nick_name FROM sys_user
+ <where>
+ <if test="list != null and list.size() > 0">
+ user_id IN
+ <foreach item="id" collection="list" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ <if test="list == null or list.size() == 0">
+ 1=0 <!-- 绌哄垪琛ㄦ椂杩斿洖绌虹粨鏋� -->
+ </if>
+ </where>
+ </select>
+ <select id="selectUsersByIds" resultType="com.ruoyi.project.system.domain.SysUser">
+ SELECT user_id, nick_name
+ FROM sys_user
+ WHERE user_id IN
+ <foreach collection="userIds" item="id" open="(" separator="," close=")">
+ #{id}
</foreach>
- </delete>
+ and del_flag = '0'
+ </select>
+ <select id="selectUserByNickName" resultType="com.ruoyi.project.system.domain.SysUser"
+ parameterType="java.lang.String">
+ <include refid="selectUserVo"/>
+ where u.nick_name = #{nickName} and u.del_flag = '0'
+ limit 1
+ </select>
- <select id="getUserByRole" resultType="java.lang.Long">
- select distinct su.user_id
- from sys_user su
- left join sys_user_role sur on su.user_id = sur.user_id
- left join sys_role sr on sur.role_id = sr.role_id
- where role_name like concat('%', #{role}, '%')
- and sr.del_flag = '0'
- and sr.status = '0'
- and su.status = '0'
- and su.del_flag = '0'
- </select>
- <select id="getUserByPerms" resultType="java.lang.Long">
- select distinct t5.user_id
- from sys_role_menu t1
- left join sys_menu t2 on t1.menu_id = t2.menu_id
- left join sys_role t3 on t1.role_id = t3.role_id
- inner join sys_user_role t4 on t4.role_id = t3.role_id
- inner join sys_user t5 on t5.user_id = t4.user_id
- where t3.del_flag = '0'
- and t2.perms is not null
- and t2.perms <> ''
- and t5.del_flag = '0'
- and t5.status = '0'
- and t3.status = '0'
- <if test="perms != null and perms.size() > 0">
- AND (
- <foreach collection="perms" item="p" separator=" OR ">
- t2.perms = #{p}
- OR t2.perms = (split_part(#{p}, ':', 1) || ':' || split_part(#{p}, ':', 2) || ':*')
- OR t2.perms = (split_part(#{p}, ':', 1) || ':*:*')
- </foreach>
- OR t2.perms = '*:*:*'
- )
- </if>
- </select>
+ <insert id="insertUser" parameterType="com.ruoyi.project.system.domain.SysUser" useGeneratedKeys="true"
+ keyProperty="userId">
+ insert into sys_user(
+ <if test="userId != null and userId != 0">user_id,</if>
+ <if test="userName != null and userName != ''">user_name,</if>
+ <if test="nickName != null and nickName != ''">nick_name,</if>
+ <if test="email != null and email != ''">email,</if>
+ <if test="avatar != null and avatar != ''">avatar,</if>
+ <if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
+ <if test="sex != null and sex != ''">sex,</if>
+ <if test="password != null and password != ''">password,</if>
+ <if test="status != null and status != ''">status,</if>
+ <if test="createBy != null and createBy != ''">create_by,</if>
+ <if test="remark != null and remark != ''">remark,</if>
+ <if test="tenantId != null ">tenant_id,</if>
+ create_time
+ )values(
+ <if test="userId != null and userId != ''">#{userId},</if>
+ <if test="userName != null and userName != ''">#{userName},</if>
+ <if test="nickName != null and nickName != ''">#{nickName},</if>
+ <if test="email != null and email != ''">#{email},</if>
+ <if test="avatar != null and avatar != ''">#{avatar},</if>
+ <if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
+ <if test="sex != null and sex != ''">#{sex},</if>
+ <if test="password != null and password != ''">#{password},</if>
+ <if test="status != null and status != ''">#{status},</if>
+ <if test="createBy != null and createBy != ''">#{createBy},</if>
+ <if test="remark != null and remark != ''">#{remark},</if>
+ <if test="tenantId != null ">#{tenantId},</if>
+ sysdate()
+ )
+ </insert>
+
+ <update id="updateUser" parameterType="com.ruoyi.project.system.domain.SysUser">
+ update sys_user
+ <set>
+ <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
+ <if test="email != null ">email = #{email},</if>
+ <if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
+ <if test="sex != null and sex != ''">sex = #{sex},</if>
+ <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
+ <if test="password != null and password != ''">password = #{password},</if>
+ <if test="status != null and status != ''">status = #{status},</if>
+ <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
+ <if test="loginDate != null">login_date = #{loginDate},</if>
+ <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+ <if test="remark != null">remark = #{remark},</if>
+ <if test="tenantId != null">tenant_id = #{tenantId},</if>
+ update_time = sysdate()
+ </set>
+ where user_id = #{userId}
+ </update>
+
+ <update id="updateUserStatus" parameterType="com.ruoyi.project.system.domain.SysUser">
+ update sys_user
+ set status = #{status}
+ where user_id = #{userId}
+ </update>
+
+ <update id="updateUserAvatar" parameterType="com.ruoyi.project.system.domain.SysUser">
+ update sys_user
+ set avatar = #{avatar}
+ where user_name = #{userName}
+ </update>
+
+ <update id="resetUserPwd" parameterType="com.ruoyi.project.system.domain.SysUser">
+ update sys_user
+ set password = #{password}
+ where user_name = #{userName}
+ </update>
+
+ <delete id="deleteUserById" parameterType="Long">
+ update sys_user
+ set del_flag = '2'
+ where user_id = #{userId}
+ </delete>
+
+ <delete id="deleteUserByIds" parameterType="Long">
+ update sys_user set del_flag = '2' where user_id in
+ <foreach collection="array" item="userId" open="(" separator="," close=")">
+ #{userId}
+ </foreach>
+ </delete>
+
+ <select id="getUserByRole" resultType="java.lang.Long">
+ select distinct su.user_id
+ from sys_user su
+ left join sys_user_role sur on su.user_id = sur.user_id
+ left join sys_role sr on sur.role_id = sr.role_id
+ where role_name like concat('%', #{role}, '%')
+ and sr.del_flag = '0'
+ and sr.status = '0'
+ and su.status = '0'
+ and su.del_flag = '0'
+ </select>
+ <select id="getUserByPerms" resultType="java.lang.Long">
+ select distinct t5.user_id
+ from sys_role_menu t1
+ left join sys_menu t2 on t1.menu_id = t2.menu_id
+ left join sys_role t3 on t1.role_id = t3.role_id
+ inner join sys_user_role t4 on t4.role_id = t3.role_id
+ inner join sys_user t5 on t5.user_id = t4.user_id
+ where t3.del_flag = '0'
+ and t2.perms is not null
+ and t2.perms <> ''
+ and t5.del_flag = '0'
+ and t5.status = '0'
+ and t3.status = '0'
+ <if test="perms != null and perms.size() > 0">
+ AND (
+ <foreach collection="perms" item="p" separator=" OR ">
+ t2.perms = #{p}
+ OR t2.perms = (split_part(#{p}, ':', 1) || ':' || split_part(#{p}, ':', 2) || ':*')
+ OR t2.perms = (split_part(#{p}, ':', 1) || ':*:*')
+ </foreach>
+ OR t2.perms = '*:*:*'
+ )
+ </if>
+ </select>
</mapper>
diff --git a/src/test/java/com/ruoyi/stock/service/impl/StockOutRecordBatchUpdateTest.java b/src/test/java/com/ruoyi/stock/service/impl/StockOutRecordBatchUpdateTest.java
new file mode 100644
index 0000000..352818d
--- /dev/null
+++ b/src/test/java/com/ruoyi/stock/service/impl/StockOutRecordBatchUpdateTest.java
@@ -0,0 +1,254 @@
+package com.ruoyi.stock.service.impl;
+
+import com.ruoyi.production.mapper.ProductionOrderMapper;
+import com.ruoyi.production.mapper.ProductionOrderPickMapper;
+import com.ruoyi.production.pojo.ProductionOrder;
+import com.ruoyi.production.pojo.ProductionOrderPick;
+import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
+import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
+import com.ruoyi.sales.mapper.SalesLedgerMapper;
+import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.pojo.SalesLedger;
+import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.stock.mapper.StockOutRecordMapper;
+import com.ruoyi.stock.pojo.StockOutRecord;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@SpringBootTest
+public class StockOutRecordBatchUpdateTest {
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ @Autowired
+ private StockOutRecordMapper stockOutRecordMapper;
+
+ @Autowired
+ private PurchaseReturnOrdersMapper purchaseReturnOrdersMapper;
+
+ @Autowired
+ private ShippingInfoMapper shippingInfoMapper;
+
+ @Autowired
+ private SalesLedgerMapper salesLedgerMapper;
+
+ @Autowired
+ private ProductionOrderPickMapper productionOrderPickMapper;
+
+ @Autowired
+ private ProductionOrderMapper productionOrderMapper;
+
+ /**
+ * 鏇存柊鍑哄簱鍗曟椂闂�
+ */
+ @Test
+ void testUpdateStockOutRecords() {
+ List<StockOutRecord> allRecords = stockOutRecordMapper.selectList(null);
+ System.out.println("鎬昏褰曟暟: " + allRecords.size());
+
+ List<RecordWithDate> recordWithDates = new ArrayList<>();
+
+ for (StockOutRecord record : allRecords) {
+ String type = record.getRecordType();
+ if (type == null) continue;
+
+ switch (type) {
+ case "1":
+ case "10":
+ recordWithDates.add(resolveType1or10(record, type));
+ break;
+ case "3":
+ System.out.println("绫诲瀷3锛堢敓浜ф姤宸�-鍑哄簱锛夐鐣欏垎鏀紝褰撳墠鏃犳暟鎹紝璺宠繃");
+ break;
+ case "8":
+ System.out.println("绫诲瀷8锛堥攢鍞�-鍑哄簱锛夐鐣欏垎鏀紝褰撳墠鏃犳暟鎹紝璺宠繃");
+ break;
+ case "9":
+ recordWithDates.add(resolveType9(record));
+ break;
+ case "13":
+ recordWithDates.add(resolveType13(record));
+ break;
+ case "14":
+ recordWithDates.add(resolveType14or15(record));
+ break;
+ case "15":
+ recordWithDates.add(resolveType14or15(record));
+ break;
+ default:
+ System.out.println("鏈煡绫诲瀷 " + type + "锛岃烦杩� ID=" + record.getId());
+ }
+ }
+
+ Map<LocalDate, List<RecordWithDate>> byDate = recordWithDates.stream()
+ .collect(Collectors.groupingBy(
+ rwd -> rwd.dateTime.toLocalDate(),
+ LinkedHashMap::new,
+ Collectors.toList()
+ ));
+
+ int totalUpdated = 0;
+ for (Map.Entry<LocalDate, List<RecordWithDate>> dateEntry : byDate.entrySet()) {
+ LocalDate date = dateEntry.getKey();
+ List<RecordWithDate> records = dateEntry.getValue();
+ records.sort(Comparator.comparing(rwd -> rwd.dateTime));
+
+ assignRandomTimes(records, date);
+
+ records.sort(Comparator.comparing(rwd -> rwd.dateTime));
+
+ int seq = 1;
+ for (RecordWithDate rwd : records) {
+ StockOutRecord record = rwd.record;
+ String type = record.getRecordType();
+ String batchNo = "CK" + date.format(DateTimeFormatter.ofPattern("yyyyMMdd")) + String.format("%03d", seq++);
+ LocalDateTime createTime = rwd.dateTime;
+
+ jdbcTemplate.update(
+ "UPDATE stock_out_record SET outbound_batches = ?, create_time = ?, update_time = ? WHERE id = ?",
+ batchNo, createTime, createTime, record.getId());
+
+ System.out.println("ID=" + record.getId()
+ + " type=" + type
+ + " batch=" + batchNo
+ + " time=" + createTime);
+ totalUpdated++;
+ }
+ }
+
+ System.out.println("鍏ㄩ儴瀹屾垚锛佸叡鏇存柊 " + totalUpdated + " 鏉¤褰�");
+ }
+
+ private void assignRandomTimes(List<RecordWithDate> records, LocalDate date) {
+ List<RecordWithDate> individual = new ArrayList<>();
+ Map<Long, List<RecordWithDate>> grouped = new LinkedHashMap<>();
+
+ for (RecordWithDate rwd : records) {
+ String type = rwd.record.getRecordType();
+ if (!"1".equals(type) && !"9".equals(type) && !"10".equals(type)
+ && !"13".equals(type) && !"14".equals(type) && !"15".equals(type)) {
+ continue;
+ }
+ if (("14".equals(type) || "15".equals(type)) && rwd.record.getRecordId() != null) {
+ grouped.computeIfAbsent(rwd.record.getRecordId(), k -> new ArrayList<>()).add(rwd);
+ } else {
+ individual.add(rwd);
+ }
+ }
+
+ List<TimeSlot> slots = new ArrayList<>();
+ for (RecordWithDate rwd : individual) {
+ slots.add(new TimeSlot(rwd.record.getId(), List.of(rwd)));
+ }
+ for (Map.Entry<Long, List<RecordWithDate>> entry : grouped.entrySet()) {
+ long minId = entry.getValue().stream()
+ .mapToLong(rwd -> rwd.record.getId())
+ .min().orElse(0);
+ slots.add(new TimeSlot(minId, entry.getValue()));
+ }
+
+ if (slots.isEmpty()) return;
+
+ slots.sort(Comparator.comparingLong(s -> s.sortKey));
+
+ int totalMinutes = 480;
+ for (int i = 0; i < slots.size(); i++) {
+ int offsetMinutes = (int) ((long) i * totalMinutes / slots.size());
+ int jitter = (int) (Math.random() * 6 - 3);
+ offsetMinutes = Math.max(0, Math.min(479, offsetMinutes + jitter));
+
+ LocalTime time;
+ if (offsetMinutes < 240) {
+ time = LocalTime.of(8, 0).plusMinutes(offsetMinutes);
+ } else {
+ time = LocalTime.of(14, 0).plusMinutes(offsetMinutes - 240);
+ }
+ LocalDateTime dt = LocalDateTime.of(date, time);
+ for (RecordWithDate rwd : slots.get(i).members) {
+ rwd.dateTime = dt;
+ }
+ }
+ }
+
+ private static class TimeSlot {
+ final long sortKey;
+ final List<RecordWithDate> members;
+
+ TimeSlot(long sortKey, List<RecordWithDate> members) {
+ this.sortKey = sortKey;
+ this.members = members;
+ }
+ }
+
+ private RecordWithDate resolveType1or10(StockOutRecord record, String type) {
+ LocalDate date = record.getCreateTime() != null
+ ? record.getCreateTime().toLocalDate()
+ : LocalDate.now();
+ return new RecordWithDate(record, LocalDateTime.of(date, LocalTime.of(8, 0)));
+ }
+
+ private RecordWithDate resolveType9(StockOutRecord record) {
+ Long recordId = record.getRecordId();
+ if (recordId != null) {
+ PurchaseReturnOrders pro = purchaseReturnOrdersMapper.selectById(recordId);
+ if (pro != null && pro.getPreparedAt() != null) {
+ return new RecordWithDate(record, LocalDateTime.of(pro.getPreparedAt(), LocalTime.of(8, 0)));
+ }
+ }
+ return fallbackDateTime(record);
+ }
+
+ private RecordWithDate resolveType13(StockOutRecord record) {
+ Long recordId = record.getRecordId();
+ if (recordId != null) {
+ ShippingInfo shippingInfo = shippingInfoMapper.selectById(recordId);
+ if (shippingInfo != null && shippingInfo.getSalesLedgerId() != null) {
+ SalesLedger salesLedger = salesLedgerMapper.selectById(shippingInfo.getSalesLedgerId());
+ if (salesLedger != null && salesLedger.getDeliveryDate() != null) {
+ return new RecordWithDate(record, LocalDateTime.of(salesLedger.getDeliveryDate(), LocalTime.of(8, 0)));
+ }
+ }
+ }
+ return fallbackDateTime(record);
+ }
+
+ private RecordWithDate resolveType14or15(StockOutRecord record) {
+ Long recordId = record.getRecordId();
+ if (recordId != null) {
+ ProductionOrderPick pick = productionOrderPickMapper.selectById(recordId);
+ if (pick != null && pick.getProductionOrderId() != null) {
+ ProductionOrder order = productionOrderMapper.selectById(pick.getProductionOrderId());
+ if (order != null && order.getStartTime() != null) {
+ return new RecordWithDate(record, LocalDateTime.of(order.getStartTime().toLocalDate(), LocalTime.of(8, 0)));
+ }
+ }
+ }
+ return fallbackDateTime(record);
+ }
+
+ private RecordWithDate fallbackDateTime(StockOutRecord record) {
+ return record.getCreateTime() != null
+ ? new RecordWithDate(record, record.getCreateTime())
+ : new RecordWithDate(record, LocalDateTime.now());
+ }
+
+ private static class RecordWithDate {
+ final StockOutRecord record;
+ LocalDateTime dateTime;
+
+ RecordWithDate(StockOutRecord record, LocalDateTime dateTime) {
+ this.record = record;
+ this.dateTime = dateTime;
+ }
+ }
+}
--
Gitblit v1.9.3